이미지에 워터마크 넣기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

이미지에 워터마크 넣기 정보

이미지에 워터마크 넣기

본문

====================================================
bbs/write_update.php
====================================================
109~164행 추가
----------------------------------------------------
// 이미지에 워터마크 넣기
// PHP > 4.0, GD > 2.0.1
// WatermarkImage("원본이미지","겹처지는이미지","투명도","화질",[겹치는이미지위치(0,1,2)]);
function WatermarkImage($CanvasImage, $WatermarkImage /* MUST BE PNG */, $Opacity=30, $Quality=70, $WatermarkLocate=1)
{
  // 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);

  // 워터마크 이미지의 위치(기본값은 가운데 1입니다.)
  switch ($WatermarkLocate) {
case 0:  // 좌측상단
  $ww = 0;
  $wh = 0;
  break;
  case 1: // 가운데
  $ww = ($canvas_w / 2) - ($overlay_w / 2);
  $wh = $canvas_h - ($overlay_h);
  break;
  case 2: // 우측하단
  $ww = $canvas_w - ($overlay_w);
  $wh = $canvas_h - ($overlay_h);
  break;
}

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

  imagejpeg($canvas_img, $CanvasImage, $Quality);
/*
  // output:
  header("Content-type: image/jpeg");
  imagejpeg($canvas_img, '', $Quality);
*/
  imagedestroy($overlay_img);
  imagedestroy($canvas_img);
}
----------------------------------------------------
238~241행 추가
----------------------------------------------------
// WatermarkImage("원본이미지","겹처지는이미지","투명도","화질",[겹치는이미지위치(0,1,2)]);
            // 겹치는이미지위치값이 0이면 좌측상단, 1이면 가운데, 2이면 우측하단
            $overfile = "$g4[path]/overlay.png";
            WatermarkImage("$dest_file", $overfile, 40, 70, 1);
----------------------------------------------------
//워터마크기능
추천
1
  • 복사

댓글 15개

이거 원래 여러장 업로드할때는 마지막장만 워터마크가 찍히는가요?
테스트해보니 그렇게 되네요..

그리고 글수정에서 이미지를 삭제하고 수정완료하니까 무슨 에러표시 5~6줄 생겼다 넘어가네요.
작동은 정상작동이 되긴하는데요.
© SIRSOFT
현재 페이지 제일 처음으로