사이트에 업로드하는 사진에 '워터마크'를 박자 정보
사이트에 업로드하는 사진에 '워터마크'를 박자본문
아래와 같이 소스를 수정하면 사이트에 올린 사진에 홈페이지 주소나, 카피라이트 등 내용을 마킹 해 넣을수있습니다.
전에 '모닝몰'에서 본 기억이 나서 혹시나 회원스킨 게시판에 있나 검색 해 보니, [푸름빠덜]님의 게시물이 보였습니다.
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?>">
는 중복으로 들어가네요.
////////// 여기서부터
코드부분
////////// 여기까지
을 그대로 카피해서 사용 하시면 됩니다.
(코드부분에는 중복이 없습니다)
를 아래와 같이 수정하면 무조건 워터마크가 찍힐듯 싶군요
<input type="hidden" name="mark" value="1"/>
좋은 내용 감사합니다. 추천~~~
그런데 작은 썸네일에도 워터마킹이 생기는데.. 이걸 없애려면 어떻게 해야하나요??
유용하게 잘 쓸 수 있을 것 같아요~ 좋은 자료 감사합니다! ^^