BOARD

팁·활용

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

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 32회 작성일 26-09-15 04:39

본문

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

그누보드 게시판에 업로드되는 이미지에 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: 우측 하단

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.