From da992a7bdd16dc7886e011b8791c2c7dd8302d6f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 11 Mar 2023 18:59:02 +0100 Subject: [PATCH] create 8-bit png instead of 16-bit --- inc/inc.ClassConversionServicePdfToImage.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/inc/inc.ClassConversionServicePdfToImage.php b/inc/inc.ClassConversionServicePdfToImage.php index 4a7f1ce2e..c7b178765 100644 --- a/inc/inc.ClassConversionServicePdfToImage.php +++ b/inc/inc.ClassConversionServicePdfToImage.php @@ -65,9 +65,14 @@ class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase if(!empty($params['width'])) $imagick->scaleImage(min((int) $params['width'], $imagick->getImageWidth()), 0); /* Remove alpha channel and set to white */ - $imagick->setImageBackgroundColor('white'); - $imagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE); - $imagick->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN); + $imagick->setImageBackgroundColor('white'); + /* Setting the color-type and bit-depth produces much smaller images + * because the default depth appears to be 16 bit + */ + $imagick->setOption('png:color-type', 6); + $imagick->setOption('png:bit-depth', 8); + $imagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE); + $imagick->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN); $imagick->setImageFormat('png'); $end = microtime(true); if($this->logger) {