Я делаю нечто подобное, хотя на самом деле я записываю образ на диск -
Когда я использовал ваш прямой вывод, он сработал, и я получил реальный цвет из PDF.
После небольшой отладки я понял, что проблема действительно связана с
imagick::resizeImage()
функция.
По любой причине, когда вы устанавливаете все свои цвета, компрессию и т. Д., ResizeImage добавляет черный фон.
Мое решение состоит в том, чтобы использовать GD для изменения размера, чтобы у меня было полное динамическое изменение размера - поскольку вас это не интересует, я просто использовал бы функцию выборки изображений. Ваш код должен быть таким:
<?php
$file ="test.pdf";
$im = new imagick(realpath($file).'[0]');
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setCompressionQuality(80);
$im->setImageFormat("jpeg");
$im->sampleImage(200,200);
// start buffering
ob_start();
$thumbnail = $im->getImageBlob();
$contents = ob_get_contents();
ob_end_clean();
echo "<img src='data:image/jpg;base64,".base64_encode($thumbnail)."' />";
?>