두개의 이미지를 투명하게 겹치는 함수
페이지 정보
본문
php.net에서 보고 쓰던 함수인데 누군가 이미지에 로고를 넣고 싶다는
질문을 하셨기에 올림니다.
<?
//이미지를 투명하게 겹친다
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여야 합니다.
------------
출처 : http://phpschool.com/bbs2/inc_view.html?id=11203&code=tnt2&start=0&mode=search&field=title&search_name=&operator=and&period=all&category_id=&s_que=%C0%CC%B9%CC%C1%F6
질문을 하셨기에 올림니다.
<?
//이미지를 투명하게 겹친다
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여야 합니다.
------------
출처 : http://phpschool.com/bbs2/inc_view.html?id=11203&code=tnt2&start=0&mode=search&field=title&search_name=&operator=and&period=all&category_id=&s_que=%C0%CC%B9%CC%C1%F6
- 이전글이미지에 회사마크 삽입 (투명한 회사마크) 21.02.09
- 다음글엑셀(excel)파일로 다운로드 받기 header 21.02.09
댓글목록
등록된 댓글이 없습니다.