首頁 >後端開發 >php教程 >使用 PHP GDlib 調整 PNG 大小時如何保持透明度?

使用 PHP GDlib 調整 PNG 大小時如何保持透明度?

Susan Sarandon
Susan Sarandon原創
2024-11-30 08:48:12287瀏覽

How Can I Preserve Transparency When Resizing PNGs with PHP GDlib?

使用PHP GDlib 保持調整大小的PNG 的透明度

使用PHP GDlib 重新取樣PNG 影像時,通常會遇到透明區域的問題原始影像中填充純色。即使使用 imagesavealpha() 函數,也會發生這種情況。

為了確保在重新取樣的影像中保留透明度,必須執行以下附加步驟:

  1. 設定影像Alpha 混合使用imagealphablending($targetImage, false) 將模式設為false,其中$targetImage 是重新取樣的圖像。
  2. 將圖像 alpha 儲存設為 true using imagesavealpha($targetImage, true)。

範例程式碼:

以下修改後的程式碼示範了正確的方法:

$uploadTempFile = $myField['tmp_name'];
list($uploadWidth, $uploadHeight, $uploadType) = getimagesize($uploadTempFile);

$srcImage = imagecreatefrompng($uploadTempFile);

$targetImage = imagecreatetruecolor(128, 128);
imagealphablending($targetImage, false);
imagesavealpha($targetImage, true);

imagecopyresampled($targetImage, $srcImage, 0, 0, 0, 0, 128, 128, $uploadWidth, $uploadHeight);

imagepng($targetImage, 'out.png', 9);

透過合併這些附加步驟,調整大小的PNG 圖像的透明度將得以保持,從而能夠保留透明元素,例如徽標或背景圖片。

以上是使用 PHP GDlib 調整 PNG 大小時如何保持透明度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn