<?
//이미지를 투명하게 겹친다
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여야 합니다.