Прозрачный круг обрезанное изображение с PHP
Я хочу обрезать изображение круга, используя PHP, но кажется, что у моего нового изображения есть несколько прозрачных пикселей. Конечно, я хочу, чтобы только внешняя область эллипса имела прозрачный фон
Мой код указан ниже:
$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);
//
//
$this->generateTransparentImage('circle');
......
Пример реального сгенерированного изображения здесь:
РЕДАКТИРОВАТЬ: функция generateTransparentImage не имеет ничего общего с кодом, перечисленным выше; эта функция генерирует это изображение:http://s7.postimage.org/byybq9163/Koala7_500x375_c_transparent.png