Композит Imagick обеспечивает большой размер выходного файла

Конкретный метод, который вы предлагаете, потерпит неудачу, потому что он использует equals(), унаследованный от Object. То есть, он проверял бы, были ли те же Number объекты одинаковыми, а не были ли их значения одинаковыми.

Если это было просто иллюстративный пример, я обновлю свой ответ.

Ответ полигена на самом деле в значительной степени охватывает почву, к которой я направлялся. Вы также можете быть заинтересованы в этом вопросе: Почему java.lang.Number не реализует Comparable? .

0
задан zanderwar 18 January 2019 в 04:54
поделиться

1 ответ

Хорошо, так что все сказано и сделано, в конечном итоге мое решение было просто

$outputLocation = 'output.png';
$mask = new \Imagick('mask.png');
$overlay = new \Imagick('overlay.png');
$overlay->resizeImage(800, 600, \Imagick::FILTER_LANCZOS, 1);
$overlay->compositeImage($mask, \Imagick::COMPOSITE_COPYOPACITY, 0, 0, \Imagick::CHANNEL_ALPHA);

// Significantly reduced image size whilst retaining decent quality
$overlay->posterizeImage(15, false);
$overlay->despeckleImage();
///////////////////////////

$overlay->writeImage($outputLocation);

и выводилось как PNG32

Этот размер сокращения уменьшился с 750 КБ ~ до 124 КБ ~ для тестирования Для целей я использовал яркий красочный цветок, и ниже мой конечный результат:

enter image description here

0
ответ дан zanderwar 18 January 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: