Автор Тема: Создание PDF из растровых WebP  (Прочитано 661 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн щербаков5

  • Пользователь
  • Сообщений: 2010
  • Сама доброта во плоти
    • Просмотр профиля
Создание PDF из растровых WebP
« : 10 Декабрь 2021, 11:48:23 »
Недавно начал экспериментировать с такими относительно новыми (для себя) форматами, как jpeg2000 и WebP. Хоть нативно они пока нормально нигде не отображаются, но варганить из первого pdf-матрёшки - одно удовольствие. Вот только если с jpeg2000 с бубном да костылями работать удаётся, то с WebP мне дальше единичных файлов заходить не получается, ни одна прога (опять же - из известных мне) их не конвертит в многостраничный pdf.
Может быть у кого-нибудь будет дельный совет по моему вопросу?  ;)

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5010
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #1 : 10 Декабрь 2021, 15:03:50 »
В PDF не будет содержаться сам WebP файл как картинка, потому что PDF формат не поддерживает и будет конвертирование в любом случае, так что можно сначала сохранить в PNG, а потом в вашем любимом редакторе как обычно добавить.
Из консольных есть ImageMagick. Качаете -portable-Q8-x64.zip, нужен только convert.exe. Создать отдельный PDF:
convert image.webp -quality 100 page.pdfВсе изображений из текущей папки с расширением .webp:
convert "*.{webp}" -quality 100 pages.pdfЧтобы также добавлять расширения .png и .jpeg:
convert "*.{webp,png,jpeg}" -quality 100 pages.pdfГлавное чтобы порядок имён файлов был лексикографический или какой там. Для этого можно использовать пакетное переименование в XnView, например.

Оффлайн щербаков5

  • Пользователь
  • Сообщений: 2010
  • Сама доброта во плоти
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #2 : 10 Декабрь 2021, 15:25:39 »
Увы, конвертация раздувает размер, такой вариант не подходит. Печально.
Ладно, буду пока кататься на jpg2000  ^_^

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5010
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #3 : 10 Декабрь 2021, 15:41:29 »
Ну так создание PDF из изображений бессмысленно, будет всегда потеря качества или увеличение размера.

Оффлайн щербаков5

  • Пользователь
  • Сообщений: 2010
  • Сама доброта во плоти
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #4 : 10 Декабрь 2021, 15:54:17 »
При создании pdf из png, jpeg и jpeg2000 ничего подобного не происходит.

Оффлайн cptPauer

  • Пользователь
  • Сообщений: 4178
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #5 : 10 Декабрь 2021, 18:33:03 »
Увы, конвертация раздувает размер, такой вариант не подходит. Печально.
PDF поддерживет алгоритмы сжатия: BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE or Zip.
webp он не умеет в принципе.
Логично, что jpg или jpg2000 могут без переконвертации, если конвертер позволяет. Наверное. Причем, не факт, что вставит без потерь, цветовую палитру может изменить, но размер останется примерно такой же.

А webp полюбому перекодится, причем он превосходит формат jpg и может быть лузлесс аки png. Поэтому, логично, что размер файла увеличится, сжать так же хорошо, при таком же размере, в pdf уже не сможет.

webp ты можешь перекодить в png, а потом внутри pdf сжать их jpg2000 компрессией. Не спрашивай как. Например, через ffmpeg конвертишь в png, а потом "печатаешь" на "виртуальный принтер" из FineReader15. Там можно настроить компрессию, как душе угодно.
А размер получится таким, как настроишь сжатие.

Например, тестовый файл 30Кб (стикер из Телеграмм), через ImageMagick
convert image.webp -quality 100 page.pdf
стал аж 500Кб.

Если же сконвертить самому в png и сохранить как pdf (с компрессией jpg2000 75% сжатие), то становится 30Кб.

----
Ты можешь вместо pdf юзать cbz. Тупо файлы png или jpg сжимать в архив zip без сжатия и потом переименовать в cbz и читать любой читалкой комиксов.
Ну, я не знаю, конечно, для чего ты хочешь картинки переделывать в pdf.. Но, обычно, такое нужно, что бы какие-то сканы или фото книг компилировать в один файл.
И тут можно обойтись просто cbz, читалки есть на андроид и винде. Оно как pdf, в итоге. Так же удобно пролистывать, даже быстрее работает, нежели pdf
« Последнее редактирование: 10 Декабрь 2021, 18:50:40 от cptPauer »

Оффлайн щербаков5

  • Пользователь
  • Сообщений: 2010
  • Сама доброта во плоти
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #6 : 11 Декабрь 2021, 06:30:01 »
обычно, такое нужно, что бы какие-то сканы или фото книг компилировать в один файл.
Именно для этого  :)

Благодарю всех за ответы.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5010
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #7 : 11 Декабрь 2021, 06:59:30 »
При создании pdf из png, jpeg и jpeg2000 ничего подобного не происходит.
Происходит, из-за метаданных всё равно размер будет чуть больше, но я говорил про форматы как WebP, где сжатие лучше, чем доступно в PDF.
webp ты можешь перекодить в png, а потом внутри pdf сжать их jpg2000 компрессией. Не спрашивай как. Например, через ffmpeg конвертишь в png, а потом "печатаешь" на "виртуальный принтер" из FineReader15. Там можно настроить компрессию, как душе угодно.
А размер получится таким, как настроишь сжатие.
ТС и так этим занимался. ImageMagick поддерживает JPEG 2000 и XnView, например, зачем такие извращения. UPD: Если только ради удобства в просмотре результата и сжатии изображений в PDF не только из картинок.
« Последнее редактирование: 11 Декабрь 2021, 07:09:51 от Sharpnull »

Оффлайн щербаков5

  • Пользователь
  • Сообщений: 2010
  • Сама доброта во плоти
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #8 : 11 Декабрь 2021, 07:22:21 »
Происходит, из-за метаданных всё равно размер будет чуть больше
Сверхкардинально - нет, не происходит. Пачка jpeg'ов и png'шек общим размером 52,3 мб (54 891 733 байт) образует PDF в 52,3 мб (54 894 920 байт). Уровень сжатия - FLATE.

но я говорил про форматы как WebP, где сжатие лучше, чем доступно в PDF.
Наверно, нужно всем разъяснить мою странную логику :)
Для меня PDF - это просто оболочка, привычная 99% пользователям, в которую я помещаю jpeg (сейчас - jpeg2000) и png в любом соотношении. Но коли WebP в ряде случаев позволяет сжимать немного лучше, чем jpeg2000, я и задался вопросом, можно ли каким-то образом в девственном виде упаковывать в PDF и его.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5010
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #9 : 11 Декабрь 2021, 07:35:47 »
Пачка jpeg'ов и png'шек общим размером 52,3 мб (54 891 733 байт) образует PDF в 52,3 мб (54 894 920 байт)
Я забыл учесть, что размер каждого файла округляется до кластера (т. е. в среднем +2048 байт на файл для кластера 4096 байт), так что в данном случае на диске PDF будет меньше весить :) Если только не положить в архив/контейнер.
можно ли каким-то образом в девственном виде упаковывать в PDF и его.
Я так и понял, вам уже ответили, что способы сжатия ограничены форматом PDF. PNG остаётся примерно такого же размера из-за схожего сжатия в PNG и PDF, а с JPEG/JPEG 2000 и так понятно. Может в новых стандартах что-то будет.

Оффлайн cptPauer

  • Пользователь
  • Сообщений: 4178
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #10 : 12 Декабрь 2021, 03:06:00 »
ТС и так этим занимался. ImageMagick поддерживает JPEG 2000 и XnView, например, зачем такие извращения.
Hу так размер получается в 7 раз больше, методом как ты написал.
(convert image.webp -quality 100 page.pdf)
Конечно, это самый неподходящий способ. По-факту, оно делает из webp в loseless pdf. А надо, что бы сжатие было, максимально приближенное к исходнику.

Параметр -quality ни на что не влияет. Либо баг ImageMagick, либо указывать надо не так :neznayu:
Сколько через ImageMagick не пробовал, качество все равно не регулируется нормально.
Можно сперва сжать в jpeg2000 и потом уже это пихать в pdf, но через ImageMagick это всё равно сделать проблемно, если есть прозрачность (оставляет много мусора на прозрачном фоне). И ImageMagick не умеет из jp2 делать pdf, получается криво.

Короче, что ещё назвать извращением.
Картинки webp сконвертить в png нет проблем, а дальше просто печатаешь виртуальным принтером и всё. Виртуальный принтер всё равно полезно в хозяйстве иметь. Это не гемморой, это здравый смысл, если часто нужны pdf-файлы.

А XnView не знаю, но IrfanView глючно работает с прозрачностью webp.
Через ffmpeg переконвертить, это самый надежный способ. Тем более, что ImageMagick через него сам и делает. ffmpeg.exe лежит в архиве с ImageMagick, например.

« Последнее редактирование: 12 Декабрь 2021, 03:24:45 от cptPauer »

Оффлайн bugmenot

  • Пользователь
  • Сообщений: 601
  • Пол: Мужской
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #11 : 12 Декабрь 2021, 06:10:38 »
Для меня PDF - это просто оболочка, привычная 99% пользователям, в которую я помещаю jpeg (сейчас - jpeg2000) и png в любом соотношении.

Да, есть определённая категория "уверенных пользователей ПК", которые, чтобы поделиться картинкой, копируют её, вставляют в новый вордовский документ и отправляют этот документ приложением по почте. В данном случае просто формат не doc, а pdf, остальное совпадает.

А на той стороне эти "привычные пользователи", чтобы достать картинки обратно из pdf, жмут на каждой принт скрин и вставляют их в paint.
« Последнее редактирование: 12 Декабрь 2021, 06:18:46 от bugmenot »

Оффлайн cptPauer

  • Пользователь
  • Сообщений: 4178
    • Просмотр профиля
Создание PDF из растровых WebP
« Ответ #12 : 12 Декабрь 2021, 07:06:07 »
@bugmenot, для OpenOffice это обычная практика, потому что у получателя может не быть OpenOffice и верстка поедет. Ни у кого нормально odt не отображается, pdf единственный выход.
Ну а так экспорт в pdf и норм. Тем более, что можно в гибридном pdf, когда внутри есть исходник. Пользователи OpenOffice такое откроют и отредактируют, остальные увидят как обычный pdf.

И Photoshop тоже, умеет такое (пихать внутрь psd).
Поэтому, когда ты видишь pdf, это не всегда может быть чистый pdf.
Думаешь, что "уверенные пользователи ПК", а там внутри исходник тебе прислали.

Либра и Фотошоп такое умеют из-коробки, вотъ
« Последнее редактирование: 12 Декабрь 2021, 07:25:00 от cptPauer »