0
我想編碼的東西,我可以將圖像疊加在一起,並將它們輸出爲1圖像。此外,我也可以將其中的一幅圖像向下移動20像素和10像素。我已經做好了一切,並設定了我想要的方式,但唯一的問題是,當我將其中一幅圖像向右移動時,它顯示了左側的黑點,我如何才能將它全部透明化。即使圖像被移位? ?PHP GD Image問題
<?php
$layers = array();
$shiftx = array();
$shifty = array();
$wid = array();
$hei = array();
$layers[] = imagecreatefrompng("egg.png");
$shiftx[] = "0";
$shifty[] = "0";
$wid[] = "75";
$hei[] = "75";
$layers[] = imagecreatefrompng("fedora.png");//Top Layer
$shiftx[] = "-20";
$shifty[] = "0";
$wid[] = "56";
$hei[] = "56";
$image = imagecreatetruecolor(100, 100);
$transparent = imagecolorallocatealpha($image, 255, 255, 255, 127);
imagefill($image, 0, 0, $transparent);
//Will merge the layers into one image//
for ($i = 0; $i < count($layers); $i++)
{
$y=$shifty[$i];
$x=$shiftx[$i];
$w=$wid[$i]-$shiftx[$i];
$h=$hei[$i]-$shifty[$i];
imagecopy($image, $layers[$i], 0, 0, $x, $y, $w, $h);
}
//Everything is now done, except for the image output. We will do this now.//
header('Content-type: image/png');
imagealphablending($image, false);
imagesavealpha($image, true);
imagepng($image);
imagedestroy($image);
>
我遇到的問題是,例如,當我把在-20移位(這樣它會向右移20),並將圖像更改爲+20,它顯示爲左側黑色。前20個像素是黑色的,但其餘的都是透明的。爲什麼會這樣做? – John
你需要imagealphablend()我認爲 –