Это довольно открытый вопрос, поскольку все еще существует возможность для гибкости между качеством изображения и размером изображения ... в конце концов, делая его черно-белым и сжимая его с помощью CCITT T.6 черно-белого (в стиле факса) Сжатие превзойдет большинство, если не все алгоритмы сжатия с поддержкой цветов.
Если вы хотите использовать черно-белое изображение (не в оттенках серого), сделайте это! Это делает документы очень маленькими.
В противном случае я рекомендую серию небольших преобразований изображений и деревьев адаптивного прогнозирования (см. здесь ). Пакет программного обеспечения APT является открытым или общедоступным, и его очень легко собрать и использовать. Его преимущества заключаются в том, что он хорошо работает с самыми разными типами изображений, особенно с текстом, и позволит вам лучше масштабировать размер изображения по сравнению с качеством изображения без потери читаемости. (Я обнаружил, что сжимаю цветную версию размера example_1000 до 48 КБ на пороге читабельности и 64 КБ с явными артефактами, но легко читаемыми.)
Я совместил APT с настройкой imagemagick:
convert example.png -resize 50% -selective-blur 0x4+10% -brightness-contrast -5x30 -resize 80% example.ppm
./capt example.ppm example.apt 20 # The 20 means quality in the range [0,100]
И для обратного процесса
./dapt example.apt out_example.ppm
convert out_example.ppm out_example.png
Чтобы объяснить настройки imagemagick:
-resize 50%
Сделайте его вдвое меньше, чтобы ускорить обработку. Также скрывает некоторые артефакты печати и сканирования.
-selective-blur 0x4+10%
: Повышение резкости на самом деле создает больше шума. Что вам действительно нужно, так это выборочное размытие (как в Photoshop), которое размывается, когда нет «края».
-brightness-contrast -5x30
: Здесь мы немного увеличиваем контраст, чтобы обрезать плохую окраску, вызванную контуром страницы (что приводит к менее сжимаемым данным). Мы также немного темнеем, чтобы сделать черных чернее.
-resize 80%
Наконец, мы изменили размер немного больше, чем ваш размер изображения example_1000. (Достаточно близко.) Это также уменьшает количество очевидных артефактов, так как они несколько скрыты, когда пиксели объединены вместе.
В этот момент у вас будет прекрасное изображение в этом примере - красивые, плавные цвета и четкий текст. Тогда мы сжимаем. Значение качества 20 - довольно низкое значение, оно выглядит не так элегантно, но документ очень разборчивый. Даже при значении качества 0 оно по-прежнему разборчиво.
Опять же, использование ADT не обязательно приведет к наилучшим результатам для этого изображения, но оно не превратится в совершенно неузнаваемый беспорядок на фотографическом контенте, таком как градиенты, так что вам нужно больше освещать типы или неожиданные типы документов.
Результаты:
88Кб
76kb
64kb
48kb
Обработанное изображение перед сжатием