[英]ImageMagick Convert PDF to low resolution JPG file
我一直在尝试使用CodeIgniter上的ImageMagick将PDF转换为JPG图像,但生成的图像质量低,并且由于某种原因总是具有黑色背景(而PDF不是)。
我正在使用的代码
public function converter($pdf){
$this->load->library('image_lib');
$config = array(
'image_library' => 'imagemagick',
'library_path' => '/usr/bin/convert',
'source_image' => "./pdf/".$pdf,
'new_image' => "./images/a.jpg",
'maintain_ratio' => true,
'width' => 980,
'quality' => '90%',
);
$this->image_lib->initialize( $config );
if ( $this->image_lib->resize( ) ) {
$this->image_lib->clear( );
}
}
有人知道这里看起来有什么不对吗?
你需要CodeIgniter可能不支持的两件事,所以你必须直接使用ImageMagick。
首先,您必须设置PDF的分辨率以获得高质量的结果。 在ImageMagick命令行上,可以使用-density
选项完成此操作。 使用PHP imagick,使用setResolution
。
要摆脱黑色背景,首先必须在白色背景上展平PDF。 在命令行上,使用选项-background white -flatten
。 使用PHP imagick, setImageBackgroundColor
和flattenImages
应该可以工作。
您可以在'image_lib'库的优先级中设置输出图片的质量和透明度。 请阅读http://ellislab.com/codeigniter/user-guide/libraries/image_lib.html并查找“quality”和“wm_x_transp”选项。
我遇到了类似的问题,我通过调用GhostScript来创建一个png文件(创建的jpg质量不够高)为自己解决了这个问题:
"gswin64c -r150 -dNOPAUSE -dBATCH -sDEVICE#pngalpha -sOutputFile=" + strTitle + "-%%02d.png " + strTitle + ".pdf"
然后将jpgs转换为pngs(使用ImageMagick):
mogrify -format jpg *.png
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.