Ekledim ama oval yapamadım:
<?php
$ana_resim_yolu = 'resim.png';
$ana_resim = imagecreatefromjpeg($ana_resim_yolu);
$oval_resim_yolu = 'oval.png';
$oval_resim = imagecreatefrompng($oval_resim_yolu);
$oval_genislik = imagesx($oval_resim);
$oval_yukseklik = imagesy($oval_resim);
$ana_genislik = imagesx($ana_resim);
$ana_yukseklik = imagesy($ana_resim);
$x = ($ana_genislik - $oval_genislik) / 2;
$y = ($ana_yukseklik - $oval_yukseklik) / 2;
imagecopy($ana_resim, $oval_resim, $x, $y, 0, 0, $oval_genislik, $oval_yukseklik);
header('Content-Type: image/jpeg');
imagejpeg($ana_resim);
imagedestroy($ana_resim);
imagedestroy($oval_resim);
?>biraz araştırdım resmi oval yaptım ama tam istediğim gibi olmadı:
<?php
$resim_yolu = 'oval.png';
$resim = imagecreatefrompng($resim_yolu); // eğer jpeg bir resim kullanıyorsan imagecreatefromjpeg fonksiyonunu kullan
$genislik = imagesx($resim);
$yükseklik = imagesy($resim);
$mask_genislik = $genislik;
$mask_yukseklik = $yükseklik;
$mask = imagecreatetruecolor($mask_genislik, $mask_yukseklik);
$mask_rengi = imagecolorallocate($mask, 255, 255, 255);
imagefilledellipse($mask, $mask_genislik / 2, $mask_yukseklik / 2, $mask_genislik, $mask_yukseklik, $mask_rengi);
imagecolortransparent($mask, $mask_rengi);
$resim_maskeli = imagecreatetruecolor($genislik, $yükseklik);
imagecopymerge($resim_maskeli, $resim, 0, 0, 0, 0, $genislik, $yükseklik, 100);
imagecopy($resim_maskeli, $mask, 0, 0, 0, 0, $genislik, $yükseklik);
header('Content-Type: image/png');
imagepng($resim_maskeli);
imagedestroy($resim);
imagedestroy($mask);
imagedestroy($resim_maskeli);
?>