사이트에 업로드하는 사진에 '워터마크'를 박자 > 그누4 팁자료실

그누4 팁자료실

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

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

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

본문



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

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

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 태그 밑에

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

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


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

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




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

추천
5

댓글 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"/>

좋은 내용 감사합니다. 추천~~~
전체 10 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT