Transparenter Kreis beschnittenes Bild mit PHP
Ich möchte ein Kreisbild mit PHP zuschneiden, aber es scheint, dass mein neues Bild einige transparente Pixel hat. Natürlich möchte ich, dass NUR der äußere Bereich der Ellipse den Hintergrund transparent macht
Mein Code ist unten aufgeführt:
$image = imagecreatetruecolor($this->dst_w, $this->dst_h);
imagealphablending($image,true);
imagecopy ( $image , $image_s , 0, 0, $this->src_x, $this->src_y, $this->dst_w, $this->dst_h );
$mask = imagecreatetruecolor($this->src_x, $this->src_y);
$mask = imagecreatetruecolor($this->dst_w, $this->dst_h);
$transparent = imagecolorallocate($mask, 255, 0, 0);
imagecolortransparent($mask, $transparent);
imagefilledellipse($mask, $this->dst_w/2, $this->dst_h/2, $this->dst_w, $this->dst_h, $transparent);
$red = imagecolorallocate($mask, 0, 0, 0);
imagecopymerge($image, $mask, 0, 0, 0, 0, $this->dst_w, $this->dst_h,100);
imagecolortransparent($image, $red);
imagefill($image,0,0, $red);
if ($ext=="jpg" || $ext=="jpeg") {
imagejpeg($image, $this->croppedImage);
} else if ($ext=="png") {
imagepng($image, $this->croppedImage);
}
imagedestroy($image);
imagedestroy($mask);
// <------- END generate cropped Image ------->
// <------- START generate transparent Image ------->
$this->generateTransparentImage('circle');
......
Ein Beispiel für ein tatsächlich generiertes Bild ist hier:
BEARBEITEN: Die Funktion generateTransparentImage hat nichts mit dem oben aufgeführten Code zu tun. Diese Funktion erzeugt dieses Bild:http://s7.postimage.org/byybq9163/Koala7_500x375_c_transparent.png