使用PHP和ImageMagick将PDF转换为JPG时的低分辨率文本

时间:2012-10-19 13:53:07

标签: php pdf imagemagick jpeg

我已使用此代码将PDF文件转换为JPEG图像

$im = new Imagick();
$im->setResolution(90,90);
$im->readImage($pdf_file);
$im->setImageFormat('jpeg');
$im->writeImages($save_to,false);
$im->clear(); 
$im->destroy();

并且它有效但我有一个问题,当有白色背景的文字时,它不会很清楚,但是当我有彩色BG时我没有这个问题。

这张图片会让每件事情都清晰 enter image description here

2 个答案:

答案 0 :(得分:1)

JPEG压缩会在边缘存在大量色差(例如黑色文字和白色背景之间)产生此类人工制品。尝试push up the compression quality  或对包含文本的图像使用其他图像格式(例如png)

答案 1 :(得分:0)

添加此功能:

$im = new Imagick();
$im->setResolution(90,90);

if ($width < 300) $im->sharpenImage(4, 1);
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setCompressionQuality(100); // or some alse 

$im->readImage($pdf_file);
$im->setImageFormat('jpeg');
$im->writeImages($save_to,false);
$im->clear(); 
$im->destroy();