【问题标题】:Low resolution test when convert PDF to JPEG with PHP and ImageMagick使用 PHP 和 ImageMagick 将 PDF 转换为 JPG 时的低分辨率文本
【发布时间】:2012-10-19 13:53:07
【问题描述】:

我已使用此代码将 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 着色时,我没有这个问题。

这张图片会让一切变得清晰

【问题讨论】:

    标签: php pdf imagemagick jpeg


    【解决方案1】:

    JPEG 压缩会在颜色差异很大的边缘(例如黑色文本和白色背景之间)生成此类伪影。尝试push up the compression quality 或者对包含文本的图像使用其他图像格式(例如 png)

    【讨论】:

      【解决方案2】:

      添加此功能:

      $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();
      

      【讨论】:

      • 我收到错误[20-Oct-2012 14:29:42] PHP Fatal error: Uncaught exception 'ImagickException' with message 'Can not process empty Imagick object'
      • 你有可用的内存吗?
      • 我不知道我在共享主机中使用的内存。对于 perl,我不知道我会检查它,但我认为这不是问题
      • 我在设置分辨率后移动 readImage 但现在我得到服务器错误 500
      猜你喜欢
      • 2014-03-23
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      相关资源
      最近更新 更多