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

본문 바로가기
사이트 내 전체검색

PHP

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

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 5,894회 작성일 21-02-09 11:40

본문

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

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

  • 게시물이 없습니다.

접속자집계

오늘
3,352
어제
4,401
최대
6,642
전체
889,315
contact : webmaster@beautipia.co.kr
Copyright © beautipia.co.kr. All rights reserved.