테스트 사이트 - 개발 중인 베타 버전입니다

사이트에 업로드하는 사진에 '워터마크'를 박자

waterMark.jpg


아래와 같이 소스를 수정하면 사이트에 올린 사진에 홈페이지 주소나, 카피라이트 등 내용을 마킹 해 넣을수있습니다.

전에 '모닝몰'에서 본 기억이 나서 혹시나 회원스킨 게시판에 있나 검색 해 보니,  [푸름빠덜]님의 게시물이 보였습니다.

http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=28315&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%BF%F6%C5%CD%B8%B6%C5%A9&sop=and


[푸름빠덜]님의 소스를 보강하면서 체크박스를 이용 해 선택 된 업로드 사진에만  '워터마크'를 박는 방법은 다음과 같습니다 ...


1. 아래 소스를 사용하는 스킨폴더에 있는 write_update.skin.php 파일속에 집어 넣고 저장 합니다.

if 조건문을 이용해서  .......
 
$mark 변수가 1 일때 워터마크가 적용 되게 해 보겠습니다.

///// 여기서 부터

if ($mark == 1){
function waterMark($fileInHD, $wmFile, $transparency = 65, $jpegQuality = 90, $margin = 5) {
 $wmImg  = imageCreateFromGIF($wmFile);
 $jpegImg = imageCreateFromJPEG($fileInHD);
$wmX=imageSX($jpegImg) - imageSX($wmImg);
$wmY=imageSY($jpegImg) - imageSY($wmImg);
 imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), $transparency);
 ImageJPEG($jpegImg, $fileInHD, $jpegQuality);
}
//##add060613 이미지합성함수

$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';

    $sql=" select * from $g4[board_file_table] where  bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no asc";
    $results = sql_query($sql);
    for ($i=0; $row=sql_fetch_array($results); $i++)  {
$file = $data_path .'/'. $row[bf_file];


if ($_FILES[bf_file][name][$i]){
waterMark($file,$board_skin_path."/img/logo_mark.gif");  // 요거 추가됨 윈본이미지우측하단에 로고를 붙이자
}


if ($i==0 && $_FILES[bf_file][name][0]){
    if (preg_match("/\.(jp[e]?g|gif|png)$/i", $file))    {
        $size = getimagesize($file);
        if ($size[2] == 1)
            $src = imagecreatefromgif($file);
        else if ($size[2] == 2)
            $src = imagecreatefromjpeg($file);
        else if ($size[2] == 3)
            $src = imagecreatefrompng($file);

        $rate = $board[bo_1] / $size[0];
        $height = (int)($size[1] * $rate);

        @unlink($thumb_path.'/'.$wr_id);
        $dst = imagecreatetruecolor($board[bo_1], $height);
        imagecopyresampled($dst, $src, 0, 0, 0, 0, $board[bo_1], $height, $size[0], $size[1]);
        imagepng($dst, $thumb_path.'/'.$wr_id, $board[bo_2]);
        chmod($thumb_path.'/'.$wr_id, 0606);
}
}
    }}

//////////// 여기까지


     ex) 그누보드\skin\board\mw.basic.utf8


2. 스킨폴더 안에 있는 write.skin.php 파일속에 form 태그 밑에

<input type=hidden name=mark      value="<?=$mark?>">



라고 한줄 더 추가 해 주고 ... 파일 업로드 input 태그 밑에

&nbsp;<input type="checkbox" name="mark"  value="1"/> 워터마킹하기

라고 체크박스 하나 넣고 저장 해 줍니다.


3. 포토샵으로 자기 취향에 맞게 투명 gif 파일(logo_mark.gif)을 만들어서
    상기 스킨폴더 안의 img 폴더에 업로드 합니다.

    ex) 그누보드\skin\board\mw.basic.utf8\img




▒   워터마크 처리 하면, 사진의 EXIF 촬영일자, 디카모델명, 디카제조사 등 정보가 사라집니다 !!!

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 20개

너무좋아요. 굿입니다. 강력추천
너무 좋습니다.
워터마크와는 별개로 썸네일은 생성해야하므로

if ($_FILES[bf_file][name][$i]){
waterMark($file,$board_skin_path."/img/logo_mark.gif"); // 요거 추가됨 윈본이미지우측하단에 로고를 붙이자
}

->

if ($mark == 1 && $_FILES[bf_file][name][$i]){
waterMark($file,$board_skin_path."/img/logo_mark.gif"); // 요거 추가됨 윈본이미지우측하단에 로고를 붙이자
}



그리고
<input type=hidden name=mark value="<?=$mark?>">
는 중복으로 들어가네요.
무슨 말씀이신지 잘 모르겠구요 ...

////////// 여기서부터
코드부분
////////// 여기까지

을 그대로 카피해서 사용 하시면 됩니다.
(코드부분에는 중복이 없습니다)
워터마크 감사합니다.
우터마크를 박자
사이트에 업로드하는 사진에 '워터마크'를 박자..감사합니다.^^
워터마킹을 체크 안해도 기본적으로 워터마킹 강제로 되게 할려면 어떻게 해야 할까요?
&nbsp;<input type="checkbox" name="mark" value="1"/> 워터마킹하기
를 아래와 같이 수정하면 무조건 워터마크가 찍힐듯 싶군요
<input type="hidden" name="mark" value="1"/>

좋은 내용 감사합니다. 추천~~~
좋은내용 감사합니다. 워터마크 적용했네요 ㅎ
사이트에 업로드하는 사진에 '워터마크'를 박자
사이트에 업로드하는 사진에 '워터마크'를 박자
감사합니다!!
그런데 작은 썸네일에도 워터마킹이 생기는데.. 이걸 없애려면 어떻게 해야하나요??
[사이트에 업로드하는 사진에 '워터마크'를 박자]
유용하게 잘 쓸 수 있을 것 같아요~ 좋은 자료 감사합니다! ^^

게시판 목록

그누4 팁자료실

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