簡體   English   中英

使用FPDF(PHP)插入帶alpha通道的PNG

[英]Insert PNG with alpha channel using FPDF (PHP)

在FPDF的官方文檔中,它說PNG不支持alpha通道。

有沒有解決方法?

如果您需要將透明圖像放在另一個上面:使用PHP內置函數將一個圖像復制到另一個圖像上。 然后你將得到一張包含兩張圖片的新圖片。 保存為非alpha png,然后插入。

這里有一個例子在這里的圖像合並所需要的代碼。

如果要在圖片下方顯示文本:首先插入圖片,然后將文本寫入文檔。

嘗試FPDF的這個擴展:

http://valentin.dasdeck.com/php/fpdf/fpdf_alpha/

頁面簡短說明:

此腳本允許使用帶alpha通道的圖像(PNG或JPG)。 alpha通道可以作為單獨的8位PNG(“掩碼”)提供,或者對於PNG,也可以使用內部alpha通道。 對於后者,需要GD 2.x擴展名。

指定單獨的蒙版圖像有幾個優點: - 不需要GD。 - 更好的質量(完整的8位alpha通道,而GD內部僅支持7位alpha通道) - 速度更快(嵌入式alpha通道的提取必須以像素方式完成)

function Image(字符串文件,float x,float y [,float w [,float h [,string type [,mixed link [,boolean isMask [,int maskImg]]]]]])

與原始Image() - 方法相同的參數,帶有2個附加(可選)參數:isMask:如果指定且為true,則圖像用作其他圖像的掩碼。 在這種情況下,將忽略參數x,y,w和h,並且屏幕圖像本身在頁面上不可見。 maskImg:圖像資源的數量(由先前調用的Image()返回,isMask參數設置為true),將用作此圖像的掩碼。

function ImagePngWithAlpha(string file,float x,float y [,float w [,float h [,mixed link]]])

與原始Image() - 方法的參數相同,但沒有類型參數。

感謝大家,這對我有用。 我基本上包括上面的擴展( http://valentin.dasdeck.com/php/fpdf/fpdf_alpha/ ),然后擴展類如下:

在fpdf_tpl.php中需要('PDF_ImageAlpha.php');

class FPDF_TPL extends PDF_ImageAlpha

在PDF_ImageAlpha.php中:

class PDF_ImageAlpha extends FPDF{
Inside of here I chaged the image() function to F_image() to avoid clashing (probably       should have used namespaces). With a quick search and replace you will see that this needs replacing 2 more times.
}

然后在我的workhorse.php文件中,我調用函數F_image()而不是image(),這解決了我的問題。

謝謝!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM