Кто отвечает за сжатие изображения в PDF, а также за сжатие или не сжатие

Я создаю wkhtmltopdfинструмент ширины PDF-файлов (рендеринг HTMLв PDF)

Эти PDF-файлы предназначены для (полу)профессиональной печати.

Допустим, качество печати должно быть 300 dpi, и пользователь размещает на этой странице изображение размером 3 на 3 дюйма. Загруженное изображение имеет размер 3000x3000 (10 МБ)

Если моя логика верна, размер изображения 900x900 был бы лучшим (это правильно?)

Так что я вижу два варианта

  • поместите полное изображение в PDF и получите размер не менее 10 МБ, надеясь, что типография сделает все возможное

и

  • измените размер (уменьшите) его до локального размера 900x900 на моем сервере (imagemagick) с наилучшим качеством, которое я могу получить - получая размер PDF около 1 МБ

Если моя логика верна, то правильный ответ - второй.

Это правильно? Если нет, то почему?

Ответы (2)

Ваша логика верна с точки зрения изображения размером 3 дюйма на 3 дюйма с разрешением 300 точек на дюйм, которое должно быть 900 пикселей на 900 пикселей. Теоретически любые измерения за пределами этого являются излишними .

Я говорю «теоретически», потому что реальная мировая практика иногда показывает, что необходимость физически сжать большое сжатое изображение перед печатью может обеспечить лучшее качество печатаемого изображения размером 900 x 900 пикселей, чем распечатываемое сжатое изображение размером 900 x 900 пикселей.

Это было бы незначительным в jpeg с легким сжатием и хорошим алгоритмом передискретизации в imagemagick, но стоит поднять в профессиональной среде. Похоже, вы должны быть в порядке, сохраняя 900 x 900 пикселей.

Звучит так, как будто лучше уменьшить только до 1200 или около того, 3000 IS слишком много, но оставить место для печати?
Сделайте несколько тестовых отпечатков с обоими и оцените сами. Я настоятельно рекомендую сделать это независимо от этого вопроса. Я полагаю, что вы будете использовать очень легкое сжатие jpeg, поэтому 900 x 900 пикселей, скорее всего, подойдет. Я сомневаюсь, что вы заметите какие-либо артефакты сжатия JPEG на отпечатках.
... и судите сами. Это моя проблема: «Я ничего не понимаю в этом», я вижу плохое качество только в том случае, если оно очень плохое ...
@halfbit, тогда, скорее всего, тебе вообще не стоит заниматься этой работой. Если вы не хотите платить за обучение.
@joojaa Правильно, я программист, у меня есть профессиональные клиенты, которые знают, что они делают, но также и менее опытные пользователи ... они убивают мой сервер и пропускную способность бессмысленными большими изображениями. Мне нужно с ними поспорить, поэтому я и спросил
@halfbit Да, но 3000 широких изображений, как правило, совсем не велики для печати только для вашего случая использования. В печатном мире вас не волнует пропускная способность. Поскольку опечатка может легко стоить вам 1000 долларов, а стоимость полосы пропускания, хотя и высокая, далеко не соответствует стоимости реальных физических услуг. В любом случае я бы не стал использовать 900 на 900 для печати, даже если бы я использовал только 3 дюйма, в основном потому, что если мне когда-нибудь понадобится что-то изменить где-либо, я облажался с этим размером.
> в любом случае я бы не использовал 900 на 900 для печати, даже если бы я печатал только на 3 дюйма . Просто чтобы мы не запутали ситуацию, я полагаю, вы перенесли обсуждение в рабочий процесс и управление проектами редактируемых изображений. Я поясню до полубита, что ваш компьютер/принтер отбросит любую информацию выше 900 пикселей, когда он печатает 3-дюймовый документ с разрешением 300 точек на дюйм. Если вам нужно потом отредактировать изображения или распечатать в других размерах, это отдельный вопрос.
@joojaa: Спасибо за предупреждение. Именно по этой причине фраза «мы не несем ответственности… бла» является частью наших условий. Я не печатаю. Мой вариант использования, вы не знаете, позволяет пользователям размещать несколько фотографий на странице, и если они помещают 20 кошек шириной 1 дюйм каждая шириной 3000 и обвиняют меня в медленной загрузке ....
@biscuitstack Я не думаю, что в большинстве случаев принтер фактически выбрасывает его за просмотр. Это просто бесполезно для процесса растеризации за пределами определенного порога, который может или, скорее, не равен 300PPI. Но это зависит от деталей реализации конвейера, таких как возможности принтеров. Это, безусловно, может ускорить процесс. В любом случае размер изображения не так тесно связан с разрешением, поэтому вполне возможно, что большее изображение с большим сжатием работает лучше, чем маленькое с меньшим.
@joojaa Изображение с разрешением 300 точек на дюйм, распечатываемое с диагональю 3 дюйма, по-прежнему использует только 900 пикселей. Это семантика, когда я говорю, что они выбрасываются, поскольку, я уверен, вы знаете, они передискретизируются — будь то в драйвере принтера или другом программном обеспечении. Но дело в том, что изображение, распечатываемое по этому критерию, содержит лишнюю информацию для печати, если оно больше 900 пикселей.

Хорошо, хотя вы, конечно, можете уменьшить изображение. И это работает. есть несколько возможных предостережений, которые следует учитывать. Помните, что я почти ничего не знаю о ваших целях и о том, что делает ваше программное обеспечение. Проблемы, которые могут возникнуть:

  • Рассматриваемое изображение не является фотографическим, а опирается, скажем, на некоторый векторный контент, такой как текст. Теперь текст, напечатанный с разрешением 300 точек на дюйм, выглядит немного размытым, так как обычно растрируется с более высоким разрешением, чем фотографии. В любом случае пользователь samrt может попытаться обойти этот факт с помощью изображений большего размера.

    Это может быть неправильное использование, а может и нет. Но нужно решить, так ли это на самом деле.

  • Меньшее изображение != меньший файл. Конечно в случае 30000 против 900 игра понятна. Но что действительно важно, так это то, сколько энтропии содержится в изображении. Поэтому наивное простое масштабирование не обязательно является лучшей стратегией распределения пропускной способности.

    Вместо этого вы можете принять стратегию, при которой вы пытаетесь сжать, если размер изображения превышает определенный порог размера. Как тогда вы вознаградите тех, кто может сделать работу самостоятельно.

  • Масштабирование вашего приложения постфактум невозможно. Если кто-то решит что-то сделать с данными изображения позже, чтобы продать что-то, это может не сработать. Хотя 150 PPI может быть приемлемым во многих случаях.

Принтер, скорее всего, ничего не сделает с изображениями, если только они не будут абсолютно огромными. Поскольку работа для этого часто не стоит того, и их разрыв может решить, что лучше в любом случае.