readImage($absolutePath.'[0]'); $source->setIteratorIndex(0); $source->autoOrient(); $source->setImageBackgroundColor('white'); $source->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE); $imagick = $source->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN); $source->clear(); $imagick->stripImage(); $width = $imagick->getImageWidth(); $height = $imagick->getImageHeight(); if (max($width, $height) > $maxEdge) { $imagick->resizeImage($maxEdge, $maxEdge, Imagick::FILTER_LANCZOS, 1, true); $width = $imagick->getImageWidth(); $height = $imagick->getImageHeight(); } $imagick->setImageFormat('jpeg'); $imagick->setImageCompressionQuality($quality); $bytes = $imagick->getImageBlob(); } finally { $imagick->clear(); $source->clear(); } if ($bytes === '') { throw new RuntimeException('Das Bild konnte nicht für die Sichtung vorbereitet werden.'); } return ['bytes' => $bytes, 'width' => $width, 'height' => $height]; } }