繁体   English   中英

ImageMagick将PDF转换为低分辨率JPG文件

[英]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, setImageBackgroundColorflattenImages应该可以工作。

您可以在'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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM