php imagick将pdf转换为png高品质

我正在尝试通过Imagick将PDF转换为高质量的PNG,但文件仍然模糊不清。 目前,我正在运行以下选项,但无法找到正确的标志以从转换中获得清晰的PNG。 原始PDF文件是8.5 x 11.建议? 谢谢!</ p>

  $ image = new \ Imagick(storage_path('app /'.$ path)); 
$ image-&gt; setResolution(200,200); \ n $ image-&gt; scaleImage(1700,2200);
$ image-&gt; setImageFormat(“png32”);
$ image-&gt; writeImage(storage_path('app /'.$ split [0]。' .png'));
</ code> </ pre>
</ div>

展开原文

原文

I'm trying to convert a PDF to a high quality PNG via Imagick, but the file keeps coming out fuzzy. Currently, I'm running the following options but can't find the right flags to get a clear PNG out of the conversion. The original PDF file is 8.5 x 11. Suggestions? Thanks!

$image = new \Imagick(storage_path('app/'.$path));
$image->setResolution( 200, 200 );
$image->scaleImage(1700,2200);
$image->setImageFormat( "png32" );
$image->writeImage(storage_path('app/'.$split[0].'.png'));

duanmei9980
duanmei9980 请您发布一个您认为模糊的示例PDF和示例输出?某些版本的GhostScript(ImageMagick在其下使用)中有一些错误。
3 年多之前 回复

2个回答



您需要在</ strong>读取图像之前设置分辨率,因为图像在读取时会被光栅化,所以它不会 之后帮忙设置分辨率 - 为时已晚!</ p>

尝试以下几行:</ p>

  $ imagick = new Imagick()  ; 
$ imagick-&gt; setResolution(288,288);
$ imagick-&gt; readImage('someFile.pdf');
</ code> </ pre>
</ div>

展开原文

原文

You need to set the resolution before reading the image because the image is rasterised when read, so it doesn't help to set the resolution afterwards - it's too late!

Try along these lines:

$imagick = new Imagick();
$imagick->setResolution(288,288);
$imagick->readImage('someFile.pdf');



  $ imagick_i = new Imagick(); 
$ imagick_i-&gt; setResolution(595,842);
$ imagick_i-&gt; readImageblob($ blob);
$ imagick_i-&gt; setImageFormat(“png32”);
foreach($ imagick_i as $ auxiliaryvalue){
echo'&lt; img src =“data:image / png ; base64,'。base64_encode($ auxiliaryvalue-&gt; getimageblob())。'“/&gt;&lt; br&gt;';

}
</ code> </ pre>
</ div>

展开原文

原文

$imagick_i = new Imagick();
    $imagick_i->setResolution( 595, 842 );
    $imagick_i->readImageblob($blob);
    $imagick_i->setImageFormat( "png32" );
    foreach ($imagick_i as $auxiliaryvalue) {
        echo '<img src="data:image/png;base64,' .  base64_encode($auxiliaryvalue->getimageblob())  . '" /><br>';

    }

dongyu3712
dongyu3712 欢迎来到SO! 使用代码发布答案时,重要的是要提及代码的工作方式/解决OP问题的原因:)
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问