【问题标题】:Pass GD image object to Imagick?将 GD 图像对象传递给 Imagick?
【发布时间】:2011-06-09 19:20:32
【问题描述】:

我正在使用使用 GD 的 PEAR::Image_Barcode 生成条形码,但我需要将该条形码写入 PDF 的一部分,PHP/Imagick 似乎是最简单的方法,有什么方法可以将 GD 图像对象转换为 Imagick 可以使用的对象?

【问题讨论】:

  • 这是为了大量使用并希望扩大规模吗?您可以尝试保存 GD 图像并将其重新加载到 Imagick,而不是我所知道的优雅解决方案。
  • 这是用于 40k+ 项的,这会破坏服务器...
  • 是的,因此我的问题是,所有的保存和重新加载都不是一个好的解决方案。至于将 GD Image 对象移动到 Imagick 中,我从未尝试过,也不知道有什么方法抱歉。
  • 我没用过,但我注意到“readImageBlob”的文档很可怜。我(php.net/manual/en/function.imagick-readimageblob.php)和这个(eclecticdjs.com/mike/tutorials/php/imagemagick/examples_07/…)链接显示了一个可能的用法。它从文件中读取,但我想有人可能会尝试捕获 GD 函数的输出,例如 imagejpeg

标签: php gd pear imagick


【解决方案1】:

我们开始:

ob_start();
 Image_Barcode::draw($barcode, 'upca', 'gif');
 $couponBarcode = ob_get_contents();
ob_end_clean();

$second = new Imagick(); 
$second->readImageBlob($couponBarcode)

它使用 GD 将图像写入output buffer,然后将该变量读入 Imagick 对象

【讨论】:

  • 在你的情况下这会不会很慢?
  • 使用 JPEG 不会提高速度,除非您一步创建除非您停止将数据传输到另一个应用程序并仅在 PHP 中创建 JPEG。
【解决方案2】:

ImageMagick 具有内部图像创建功能。使用条形码字体,您可以直接在 ImageMagick 中创建条形码。我猜 ImageMagick 在构建图像方面会比 PHP 更有效。对此不确定(imageimagick 的 PDF 函数有时会出乎意料),但作为额外的奖励,您最终可能会得到矢量输出而不是位图,这将占用更多空间并且无法很好地缩放。

【讨论】:

  • +1 那会更好...但是我必须弄清楚更多的东西而且我没有时间...下一个版本我肯定会使用这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多