PHP 將 png 透明底圖改成白色

PHP 對一張透明底圖的 png 圖片,想要將透明底圖加上顏色(移除透明底圖),要怎麼做呢?

  • 註:想要將兩張圖片合併在一起,遇到透明底圖的時候,合成起來透明底圖會變黑底

PHP 將 png 透明底圖改成白色

想要將透明底圖改成白色,先紀錄找失敗的案例,使用下述:

上述也會將透明的部份變成白色,不過白色的顏色是有點怪的(不是純白),所以後來想說乾脆在背景先弄一張白色的底圖,再把 png 圖片放上去,再合併在一起即可,使用下述:

下述為範例程式,圖片大小為 300x300

<?php
$image = imagecreatefrompng('example.png');

$image_new = imagecreatetruecolor(300, 300);
imagefilledrectangle($image_new, 0, 0, 300, 300, imagecolorallocate($image_new, 255, 255, 255)); // 設定底色白色
imagecopyresampled($image_new, $image, 0, 0, 0, 0, 300, 300, 300, 300);

header('Content-Type: image/png');
imagepng($image_new);
?>

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料