簡體   English   中英

使用 PHP 將圖像轉換為 alpha 透明度

[英]Convert images to alpha transparency with PHP

$im = imagecreatefrompng('./test.png');
$white = imagecolorallocate($im, 255, 255, 255);
imagecolortransparent($im, $white);

此代碼適用於從圖像中刪除純白色,但我想要做的是將所有 colors 轉換為 alpha 百分比。 例如,中等灰色將是 50% 透明黑色。 因此,如果放置在頂部,中等灰色的圖像將顯示其后面的圖像。

這可以使用 PHP 或擴展嗎?

我剛剛為你編寫並測試了這個腳本。

$imfile = './test.png';
$origim = imagecreatefrompng($imfile);
$im_size = getimagesize($imfile);

$im = imagecreatetruecolor($im_size[0], $im_size[1]);
imagealphablending($im, false);
imagesavealpha($im, true);

for ($x = 0; $x < $im_size[0]; ++$x){
    for ($y = 0; $y < $im_size[1]; ++$y){
        $rgb = imagecolorat($origim,- $x, $y);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;
        $color = imagecolorallocatealpha($im, 0, 0, 0, intval(($r+$g+$b)/3/255*127)); 
        imagesetpixel($im, $x, $y, $color);
    }
}

在大圖像上它可能有點慢,但它就像你想要的那樣工作。 =)

希望這個答案是可以接受的。 祝你好運。

暫無
暫無

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

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