Почему readimage и writeimage занимают много времени для изображений PNG в imagemagick? - PullRequest
0 голосов
/ 02 июля 2018

Я использую Imagemagick версии 7.0.5-4 для выполнения операций обработки изображений, таких как обрезка, изменение размера и т. Д. С библиотекой go-graphics . Я также управляю пулом волшебных предметов.

Features: Cipher DPC HDRI Modules
Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib

Время чтения изображения в объекте MagickWand как magickWand.ReadImage(<url>) в изображениях png очень велико по сравнению с изображениями jpg. Для изображений размером около 22 КБ чтение файла jpg занимает около 300 мс, а чтение файла png - около 1-2 минут.

Отредактировано:

Когда на сервер отправляется один запрос, операция чтения занимает около 20 мс, а при загрузке 100 об / с - до 2-4 минут. Эта тенденция только в изображениях PNG, а не в JPG.

Есть какие-нибудь идеи о том, что можно сделать по-разному при чтении файлов png и как это можно сделать быстродействующим? Это нормально, чтобы снизить качество изображений примерно до 60%. Пробовал варианты вроде SetImageDepth но без разницы.

1 Ответ

0 голосов
/ 03 июля 2018

Параметр качества сжатия имеет другой эффект и значение при работе с файлами PNG по сравнению с файлами JPEG.

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

Пожалуйста, прочитайте здесь и проведите несколько экспериментов с компромиссом между временем и размером файла.

Я сделал вам несколько графиков, чтобы показать эффект на сжатие времени и сжатый размер для разных настроек качества, используя два разных типа изображений - мультфильмы и фотографии - чтобы вы могли увидеть эффект.

Вот мультфильм:

enter image description here

Посмотрите, как настройка качества (0-100) влияет на время и размер при выводе JPEG:

enter image description here

Теперь посмотрим, что произойдет, если вы будете использовать те же настройки качества (0-100) при генерации PNG:

enter image description here


Теперь давайте посмотрим на сжатие фотографии iPhone в JPEG:

enter image description here

А при сжатии фотографии iPhone в PNG:

enter image description here


Надеюсь, вы видите, что использование одной настройки качества из вашего конфигурационного файла для PNG и JPEG, а также с фотографиями и мультфильмами / линейными рисунками не является идеальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...