2013-04-11 100 views
2

我正在研究一个涉及TCPDF的项目。我一直在使用它一段时间,但是,在最后一次更新(6.0)后,我的PNG图像被破坏,尽管它的碎片在文档中仍然可见。TCPDF:PNG图像渲染不正确

我使用Image()方法如下: $pdf->Image($img, $x, $y, $twidth, $theight);

其中$ IMG是源URL,$ x和$ y的位置和$ twidth和$ theight大小。 我测试过GIF和JPG,它工作得很好。 PDF上有一个GIF图像来证明这一点。 PNG图像是VLC图标标志。

的图像:

enter image description here

+0

@你有原始图像吗?因为您的链接不再可用 – carla 2017-09-06 14:20:12

+0

@ carla对不起,自从发现问题以来,我已将其删除。我不再有形象。 – Jay 2017-10-28 08:55:55

回答

0

project site,给谁也有类似问题的用户:

也许你有在不同 处理问题,PNG图像透明度取决于所使用的php-imagick或php-gd 版本。尝试更新php-imagick并禁用php-gd

+0

谢谢,我会试一试! – Jay 2013-04-11 20:35:33

+0

我试过了,还是一样的。现在运行Image Magick 6.7.3 Q16 – Jay 2013-04-11 20:46:08

0

因为我遇到了同样的问题,所以我找到了这个老问题。在我的情况下,解决方案很简单:

打开用Photoshop图像 - >另存为Web

我知道这是不是对这个问题的真正解决,但它可能是一个简单的工作 - 为您节省大量时间。

0

我有这个问题,tcpdf不显示仅PNG图像。 (提供的路径图像是正确的)

它是definetely一个GD版本的问题,至少当你仍然使用旧版本的PHP(如5.3)。卸载/删除Gd通常不是一种选择,因为它在其他地方使用。

下面是我如何修复它:一般的想法是强制TCPDF使用imagemagick而不是GD用于PNG文件。不去除GD。

步骤:

  • 安装ImageMagick的dev的包

    在Debian:

    apt-get -y install libmagickwand5 libmagickwand-dev

  • 经由恰当的或通过编译IT-安装ImageMagick的PECL扩展(>谷歌是你的朋友)

  • 不要忘记激活

    echo "extension=/usr/lib/php/20090626-zts/imagick.so" > /etc/php5/conf.d/41-imagick.ini

  • 在TCPDF某处的文件(顶部?)定义一个全局变量:

    define('USE_GD',0);

  • 在tcpdf.php(我的版本是TCPDF 5.0.002)功能public function Image($file, $x='', $y='', $w=0, $h=0, $type=''....)近线5305中:

    • 找到

      if ((method_exists($this, $mtd)) AND (!($resize AND function_exists($gdfunction))))

      替换为(USE_GD加上)

      if (USE_GD && (method_exists($this, $mtd)) AND (!($resize AND function_exists($gdfunction))))

    • 发现(数低于行)

      if (function_exists($gdfunction)) {

      由(USE_GD加)

      if (USE_GD && function_exists($gdfunction)) {

    • 和一般来说到处function_exists($gdfunction)提到

    • 更换
+0

我已经从这里开始了:TCPDF - PDF/Discussion/Help的PHP类:仅在某些服务器上的PNG问题 https://sourceforge.net/p/tcpdf/discussion/435311/线程/ da4cf78c /#c64c – Nadir 2017-05-07 14:09:13