그누보드 이미지 업로드 시 자동 워터마크 삽입 구현 방법
페이지 정보

본문
그누보드 이미지 업로드 시 자동 워터마크 삽입 구현 방법
그누보드 게시판에 업로드되는 이미지에 PHP GD 라이브러리를 활용하여 자동으로 워터마크를 합성하는 방법을 알아봅니다.
그누보드 이미지 업로드 시 자동 워터마크 삽입 구현 방법
그누보드4 환경에서 게시판에 업로드되는 이미지에 자동으로 워터마크를 합성하려면 bbs/write_update.php 파일을 수정해야 합니다. 이 방법은 PHP GD 라이브러리를 사용하는 환경을 전제로 합니다. 코드를 수정하기 전 오류 발생 시 즉시 복구할 수 있도록 반드시 원본 파일을 백업해야 합니다.
1. 백업 및 사전 확인
- 수정 전
bbs/write_update.php원본 파일을 백업합니다. - PHP GD 라이브러리 환경(2.0.1 이상)이 필요하며, 겹쳐지는 워터마크 이미지는 반드시 PNG 포맷이어야 정상적으로 투명 처리가 적용됩니다.
2. 워터마크 처리 함수 구현
bbs/write_update.php 파일에 원본 이미지를 불러와 지정한 위치에 워터마크를 합성하는 WatermarkImage 함수를 추가합니다.
function WatermarkImage($CanvasImage, $WatermarkImage, $Opacity=30, $Quality=70, $WatermarkLocate=1) {
$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);
$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);
$black = imagecolorallocate($overlay_img, 0x00, 0x00, 0x00);
$white = imagecolorallocate($overlay_img, 0xFF, 0xFF, 0xFF);
$magenta = imagecolorallocate($overlay_img, 0xFF, 0x00, 0xFF);
imagecolortransparent($overlay_img, $white);
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;
}
imagecopymerge($canvas_img, $overlay_img, $ww,$wh,0,0, $overlay_w, $overlay_h, $Opacity);
imagejpeg($canvas_img, $CanvasImage, $Quality);
imagedestroy($overlay_img);
imagedestroy($canvas_img);
}
3. 업로드 로직 적용 방법
함수 정의 외에 실제 업로드 처리 과정에서 워터마크 함수를 호출하도록 코드를 추가합니다. 워터마크 이미지 파일 경로와 투명도, 화질, 위치 값을 지정할 수 있습니다.
$overfile = "$g4[path]/overlay.png";
WatermarkImage("$dest_file", $overfile, 40, 70, 1);
위치 값은 0(좌측 상단), 1(가운데), 2(우측 하단) 중 선택할 수 있습니다.
4. 적용 후 확인 방법
수정 완료 후 게시판에 테스트 이미지를 업로드하고, 상세 보기 화면에서 지정한 위치와 투명도로 워터마크가 정상적으로 합성되었는지 확인합니다.
업로드 처리 과정의 워터마크 설정 값과 위치 옵션
그누보드 업로드 로직에서 WatermarkImage 함수를 호출할 때 워터마크 이미지 파일 경로, 투명도, 화질, 위치 값을 직접 지정할 수 있습니다.
호출 코드 예시
$overfile = "$g4[path]/overlay.png";
WatermarkImage("$dest_file", $overfile, 40, 70, 1);
위치 옵션 값
0: 좌측 상단1: 가운데2: 우측 하단
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글PHP 파일 업로드 보안 처리 가이드: isuploadedfile 및 moveuploadedfile 사용 26.09.15
- 다음글그누보드 게시판 제목 특정 구간 마스킹 처리 방법과 구현 시 주의사항 26.09.15
댓글목록
등록된 댓글이 없습니다.