2013-04-11 104 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