Вот как вы это делаете:
$old = imagecreatefromjpeg("old_image.jpg");
// Create a 100x100 image
$im = imagecreatetruecolor(100, 100);
$black = imagecolorallocate($im, 0, 0, 0);
// Make the background transparent
imagecolortransparent($im, $black);
// Copy old image on top of new image
imagecopy($im, $old, 25, 25, 0, 0, 50, 50);
// Save the image
imagepng($im, './new_image.png');
imagedestroy($im);