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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage