이미지에 워터마크 넣기 정보
이미지에 워터마크 넣기본문
====================================================
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);
----------------------------------------------------
//워터마크기능
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
1
댓글 15개
좋은 팁 감사합니다...적용해보겠습니다..^^
이미지가 반드시 png포맷이어야 하나요?
기다리던 팁입니다.
감사합니다.
감사합니다.
감사합니다^
좋은 팁 감사합니다! ^^
와우..정말 감사합니다. 며칠전에 해볼려다가 못했었는데..^^
109~164행 추가
위 말이 행 사이에 추가하라는 말인가요.
행 다음에 아니면 행 앞에 추가하라는 말씀인가요?
위 말이 행 사이에 추가하라는 말인가요.
행 다음에 아니면 행 앞에 추가하라는 말씀인가요?
게시판마다 따로 제어 가능 한가요? 아니면 싸이트내 모든 이미지에 찍히나요?
좋은팁 인데 전 인터넷은 제한하지 말자는 주의라서..^^
아, 제가 정말 찾던 팁입니다~ 감사합니다!!!
이거 원래 여러장 업로드할때는 마지막장만 워터마크가 찍히는가요?
테스트해보니 그렇게 되네요..
그리고 글수정에서 이미지를 삭제하고 수정완료하니까 무슨 에러표시 5~6줄 생겼다 넘어가네요.
작동은 정상작동이 되긴하는데요.
테스트해보니 그렇게 되네요..
그리고 글수정에서 이미지를 삭제하고 수정완료하니까 무슨 에러표시 5~6줄 생겼다 넘어가네요.
작동은 정상작동이 되긴하는데요.
이미지에 워터마크 넣기
어째 예전에 내가 만든 소스랑 앞뒤가 똑같네.....
감사합니다. 스크랩
이미지에 워터마크 넣기