$image = "[...]"; //binary string containing PNG image $file = fopen('image.tmp', 'wb'); fputs($file, $image); fclose($file); $image = new Imagick('PNG:image.tmp'); $image->thumbnailImage($width, $height); $image->setImageFormat('jpg'); $image->setCompressionQuality(97); $image->writeImage('image.jpg');
Вышеупомянутое не работает и дает мне черное изображение для этого изображения. При выполнении вместо
[...] $image->setImageFormat('png'); $image->setCompressionQuality(97); $image->writeImage('image.png');
все снова в порядке. I думаю, что он должен делать что-то с прозрачным фоном, который недоступен в формате JPG. Может ли кто-нибудь помочь решить эту проблему (Imagick не очень хорошо документирован, поэтому я не знаю, как себе помочь).