두개의 이미지를 투명하게 겹치는 함수

<?
//이미지를 투명하게 겹친다
function WatermarkImage($CanvasImage, $WatermarkImage /* MUST BE PNG */, $Opacity=10, $Quality=75){
   // create true color canvas image:
   $canvas_src = imagecreatefromjpeg($CanvasImage);
   $canvas_w = ImageSX($canvas_src);
   $canvas_h = ImageSY($canvas_src);
   $canvas_img = imagecreatetruecolor($canvas_w, $canvas_h);
   imagecopy($canvas_img, $canvas_src, 0,0,0,0, $canvas_w, $canvas_h);
   imagedestroy($canvas_src);    // no longer needed

   // create true color overlay image:
   $overlay_src = imagecreatefrompng($WatermarkImage);
   $overlay_w = ImageSX($overlay_src);
   $overlay_h = ImageSY($overlay_src);
   $overlay_img = imagecreatetruecolor($overlay_w, $overlay_h);
   imagecopy($overlay_img, $overlay_src, 0,0,0,0, $overlay_w, $overlay_h);
   imagedestroy($overlay_src);    // no longer needed

   // setup transparent color (pick one):
   $black  = imagecolorallocate($overlay_img, 0x00, 0x00, 0x00);
   $white  = imagecolorallocate($overlay_img, 0xFF, 0xFF, 0xFF);
   $magenta = imagecolorallocate($overlay_img, 0xFF, 0x00, 0xFF);    
   // and use it here:
   imagecolortransparent($overlay_img, $white);

   // copy and merge the overlay image and the canvas image:
   imagecopymerge($canvas_img, $overlay_img, 0,0,0,0, $overlay_w, $overlay_h, $Opacity);

   // output:
   header("Content-type: image/jpeg");
   imagejpeg($canvas_img, '', $Quality);

   imagedestroy($overlay_img);
   imagedestroy($canvas_img);
}

// call function with opcity set to 50% and 95% quality
WatermarkImage("1.jpg", "1.png", 50, 95);
?>
WatermarkImage("바탕이미지","투명하게 겹처지는이미지","투명도","화질");
쓰이는 함수를 보시면 알겠지만 이미지는 앞에는 jpg, 뒤에는 png여야 합니다.
jpg파일은 루프를 돌려 체크해 이미지에 맞는 함수를 부르도록 수정하면 되지만
겹처지는 파일인 png는 투명효과를 위해 반드시 png여야 합니다.

Press ESC to close