Метод PHP GD imagecopy больше размера файла изображения, чем исходное изображение

В своей работе я использую функцию imagecopy PHP GD lib для добавления водяных знаков к изображениям, но обнаруживаю, что сгенерированное изображение больше, чем исходное изображение до этого, есть ли способ оптимизировать размер файла, кроме jpegoptim для обрезки метаданных exif.

Тестовый код на github: https://github.com/zeanwork/Watermark, вы можете протестировать с exmaple размер файла to.jpg намного больше, чем размер файла from.jpg и watermark.png.

введите здесь описание изображения

файл mediainfo

введите здесь описание изображения

Но я не хочу, чтобы изображение с водяным знаком было намного больше, чем исходный файл. В моем тесте размер файла to.jpg иногда в 4 раза больше исходного изображения.

любые лучшие способы уменьшить размер файла?


person Kewin    schedule 20.11.2016    source источник
comment
Какого качества вызов inagejpeg (3-й аргумент)   -  person exussum    schedule 20.11.2016
comment
Я добавил изображение mediainfo   -  person Kewin    schedule 20.11.2016


Ответы (1)


Это качество изображения, но опять же, я не думаю, что возможно иметь идентичный размер изображения JPEG, даже если вы просто скопируете одно изображение jpg в другое. Watermark сохраняет изображение с качеством 100, которое является самым большим. Я предполагаю, что ваше исходное изображение не имеет такого большого качества, поэтому разница в размере файла.

Просто взгляните на строку 204 класса Watermark:

# Save image
$functionTarget($this->imgSource, $imgTarget, 100);

Вам придется жестко запрограммировать его, чтобы изменить качество.

person Christos Lytras    schedule 20.11.2016
comment
да, спасибо, с помощью команды, чтобы получить исходное качество изображения: идентифицируйте -format '%Q' - person Kewin; 20.11.2016