使用 Imagick 从 pdf 文件转换而来的图像有灰色背景

问题描述 投票:0回答:1

我正在尝试使用 php 中的 imagick 将 pdf 文件转换为图像。该脚本工作正常,但创建的图像具有灰色背景,就像 pdf 文件的背景被删除一样

$srcimg = $_SERVER['DOCUMENT_ROOT'] . '/files/pdf_canevas/doc1.pdf'; 

$targetimg = $_SERVER['DOCUMENT_ROOT'] . '/files/pdf_canevas/doc1.jpeg'; 

$im = new imagick();
$im->setResolution(150, 150);
$im->readImage($srcimg);
$im->setImageFormat('jpeg');
$im->setImageCompression(imagick::COMPRESSION_JPEG); 
$im->setImageCompressionQuality(100);
$im->writeImage($targetimg);

$im->clear();
$im->destroy();

这是我在转换图像上得到的背景示例 enter image description here

图像输出 enter image description here

php imagick
1个回答
0
投票

在readImage之后使用这个

$im = $im->mergeImageLayers(imagick::LAYERMETHOD_FLATTEN );

更新代码如下

$srcimg = $_SERVER['DOCUMENT_ROOT'] . '/files/pdf_canevas/doc1.pdf'; 

$targetimg = $_SERVER['DOCUMENT_ROOT'] . '/files/pdf_canevas/doc1.jpeg'; 

$im = new imagick();
$im->setResolution(150, 150);
$im->readImage($srcimg);

$im = $im->mergeImageLayers(imagick::LAYERMETHOD_FLATTEN );

$im->setImageFormat('jpeg');
$im->setImageCompression(imagick::COMPRESSION_JPEG); 
$im->setImageCompressionQuality(100);
$im->writeImage($targetimg);

$im->clear();
$im->destroy();
© www.soinside.com 2019 - 2024. All rights reserved.