【发布时间】:2022-01-03 00:15:41
【问题描述】:
它是随机的,或者我认为它是大于 1mb 的 pdf 它有时将缩略图输出为彩色,有时输出为黑白
这是我的代码
public function convertPdfToImage($_pdf) {
if(file_prepare_directory($this->thumbnailDirectory, FILE_CREATE_DIRECTORY)) {
try {
$date = new \DateTime();
$thumbFileName = $date->getTimestamp() . '.png';
$imagick = new Imagick();
$imagick->setResolution(50,50);
$imagick->readImage($_pdf);
$imagick->setIteratorIndex(0);
$imagick->setImageFormat('png');
$thumbFile = \Drupal::service('file_system')->realpath($this->thumbnailDirectory . '/' . $thumbFileName);
if($imagick->writeImage($thumbFile)) {
return $this->thumbnailDirectory . '/' . $thumbFileName;
}else{
\Drupal::logger('dtm_misc')->error('Error Saving PDF Thumbnail');
}
}catch (\Exception $e) {
$imagick->destroy();
\Drupal::logger('dtm_misc')->error('PDF To Image Exception: ' . $e->getMessage());
}
}
}
任何帮助将不胜感激..谢谢
【问题讨论】:
-
需要看一个例子;一个是单色的,一个是彩色的。
-
功能相同,但当 pdf 文件大小大于 1mb 时,它会给出单色图像。
-
嗯,也许 PDF 本身的颜色配置文件是问题所在。您可以尝试从 PDF 中获取当前颜色空间并为您的图像更改它。喜欢:php.net/manual/de/imagick.setimagecolorspace.php#116565
-
当我在加载pdf之前设置色彩空间时它起作用了``` $imagick->SetColorspace(Imagick::COLORSPACE_SRGB); ```
标签: php drupal imagemagick ghostscript imagick