Когда я начал работать с изображениями в PHP, я понял, что изображения должны быть изменен а также передискретизируется уменьшить размер файла. я говорю resizing
здесь, чтобы быть уменьшение высоты и ширины изображения без намеренного изменения качества изображения а также resampling
быть изменение размера и преднамеренное изменение качества изображения с помощью функции imageconvolution (). При сравнении группы изображений одинаковых размеров, одна из которых была пересчитана с помощью PHP, а другая нет, я заметил незначительные различия в размерах файлов. Это мои выводы для одного набора изображений, и они были похожи на другие наборы:
Изображение с измененным размером и измененным размером:
Изображение с измененным размером без передискретизации:
Исходное изображение:
Изображение с передискретизацией 4.3KB
больше, чем изображение без передискретизации. Эта разница относительно невелика, но если передискретизированное изображение окажется больше, чем непересэмплированное, то какова важность повторной дискретизации? Это редкое явление? Это случается только с jpeg
файлы?
Н / В: Я работал с imagecreatefromjpeg
, imagecreatetruecolor
, imagecopyresampled
, а также imageconvolution
(при пересчете).
Изменение размера изображения всегда требует повторной выборки в той или иной форме. Смотрите определение повторной выборки в Википедии: https://en.wikipedia.org/wiki/Image_scaling#Mathematical. Разница в конечном размере файла, вероятно, полностью связана с различными методами масштабирования, позволяющими создавать визуально разные изображения, которые сжать по-разному по окончательному алгоритму JPEG. Например. больший файл содержит больше деталей или зернистость, которая также не сжимается. Вам нужно будет выбрать алгоритм изменения размера и формат сжатия, который вы предпочитаете, и сбалансировать визуальное качество с размером файла конечного результата.
Других решений пока нет …