Merge a png-24 image into a jpeg background, with trasparency.
function mergeJPGPNG($jpg, $png, $dest){
// open image 1
$file_1 = $jpg;
$file_2 = $png;
$image_1 = imagecreatefromjpeg($file_1);
$x1 = imagesx($image_1);
$y1 = imagesy($image_1);// open image 2
$image_2 = imagecreatefrompng($file_2);
imageAlphaBlending($image_2, false);
imageSaveAlpha($image_2, true);
$x2 = imagesx($image_2);
$y2 = imagesy($image_2);// make a transparent background
$slate = imagecreatetruecolor(max($x1, $x2), max($y1, $y2));
$transparent = imagecolorallocatealpha($slate,0,255,0,127);
imagefill($slate,0,0,$transparent);// now do the copying
imagecopy($slate, $image_1, 0, 0, 0, 0, imagesx($image_1)-1, imagesy($image_1)-1);
imagecopy($slate, $image_2, 0, 0, 0, 0, imagesx($image_2)-1, imagesy($image_2)-1);// for the background do this after copying is finished
imageAlphaBlending($slate, false);
imageSaveAlpha($slate, true);imagepng($slate, $dest);
}// try it !!
$file_1 = “background.jpg”;
$file_2 = “foreground.png”; // PNG-24
mergeJPGPNG($file_1, $file_2, $destinationfile);
Loading...