업로드 이미지 일괄 워터마크 적용하기 > 그누4 팁자료실

그누4 팁자료실

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

업로드 이미지 일괄 워터마크 적용하기 정보

업로드 이미지 일괄 워터마크 적용하기

본문

이미 올라온 소스인지 검색을 해 봤는데 몇 안되는 게시물에 없는것 같아서 올려봅니다.
저의 홈에서 이용하던 걸 올립니다.

워터마크 테스트용 이미지 첨부합니다. 그누보드/img/ 디렉토리에 넣으시면 됩니다.

그리고 질문하셔도 설명 못 드립니다^^


적용하고 싶은 게시판의 "write_update.skin.php"를 아래 소스로 바꾸시면 됩니다.
아래 소스는 이미지 리사이즈 적용 소스이니..원치 않으시면 주석달린곳을 참고 하시면 됩니다.


<?
// 자신만의 코드를 넣어주세요.
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';

$sql2=" select * from $g4[board_file_table] where  bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no asc"; 
$results2 = sql_query($sql2); 
for ($d=0; $row2=sql_fetch_array($results2); $d++)  {

if ($_FILES[bf_file][name][$d])
{
$file = $data_path .'/'. $row2[bf_file];
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);
else
break;

$rate = $board[bo_image_width] / $size[0]; // 리사이즈를 원치않으면 여기서부터~~~
$height = (int)($size[1] * $rate);

if ($size[0] > $board[bo_image_width]){

@unlink($data_path.'/'.$row2[bf_file]);
$dst = imagecreatetruecolor($board[bo_image_width], $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $board[bo_image_width], $height, $size[0], $size[1]);
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]); //혹 업로드 이미지 깨지면 여긴 주석처리하시고 바로 아래 껄 이용하세요.. 
// imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]); //주석 해제
chmod($data_path.'/'.$row2[bf_file], 0606);

$temp = @getimagesize(addslashes($file));
 
 } // 리사이즈를 원치않으면 여기까지 삭제 & 주석처리하면 됨.

 $wmFile = $g4[path]."/img/logo_mark.gif"; // 워터마크 이미지 주소
            $wmImg  = imageCreateFromGIF($wmFile);
            $size = getimagesize($file); 
            if ($size[2] == 1) 
                $jpegImg = imagecreatefromgif($file); 
            else if ($size[2] == 2) 
                $jpegImg = imagecreatefromjpeg($file); 
            else if ($size[2] == 3) 
                $jpegImg = imagecreatefrompng($file); 
            else 
                break; 
           
            $wmX=imageSX($jpegImg) - imageSX($wmImg);
            $wmY=imageSY($jpegImg) - imageSY($wmImg);
            imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), 90);
            ImageJPEG($jpegImg, $file, 90);
 }
 }
 } 
 ?>


에러 나시는 분은 댓글 남겨주세요....

추천
9

댓글 26개

없으면 임의로 하나 만드시면 됩니다~
맨위 상단에..
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
이거 추가하시구요~
윤효섭님/ 그 코드가 누락되었네요..확인하고 올렸다 싶었는데...^^
주이님 / 아마 제가 알기론 불가능한듯 싶은데,,,혹 고수분들께선 알고 계실지도 모르겠습니다..
케케님/ 심심혀님/ 로고가 깨진다는건 워터마크 이미지가 검게 나온단 말씀인지요?...워터마크 이미지는 배경이 투명처리 되어야 될겁니다..그리고 이미지 리사이즈 적용을 안 하면 이미지 크기에 따라서 워터마크 크기도 유동적입니다...
로고를 이쁘게 만들고 넣어주면 로고가 약간 검게 나오거나 퀄리티가 떨어져요.^^;
로고를 원본 로고처럼 나오게 할수는 없을까요?
비둘기님
$wmY=imageSY($jpegImg) - imageSY($wmImg);
            imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), 50);
            ImageJPEG($jpegImg, $file, 100);

저는 이렇게 했습니다.
기본값은 90,90으로 되어 있는데 조금 바꾸었습니다.
그리고 로고 이미지는 바탕을 투명으로 하지 마시고 옅은 칼라로 한다음 제가 50으로 맞추어 넣은 것에서 투명도 조정을 하시면 어느 정도 원하시는 효과가 있지 않을까 생각합니다.
비둘기님 / 투명 워터마크를 만들실때 원하시는 폰트가 크질않다면 폰트의 anti-alias를 none로 한번 해보세요..
가장무난한게...힌글씨에 테두리를 1px정도의 약간 검은색을 입혀주시는게 가장 잘 나올겁니다.

그리고 포샵에서 여러가지 응용을 하시면 만족할만한 결과물이 나올것 같습니다.
원하는 결과는 본인의 몫이겠죠?...^^
암튼 건투를 빕니다.
http://monge.co.kr/bbs/board.php?bo_table=freeboard&wr_id=3
위와같이 깨집니다 ㅡ.ㅡ 어떻게 해야할까요..

참, 업로드된 이미지 모두가 깨지는게 아니고 3~4개 게시물 업로드하고 5~6번째 게시물에 저러네요..
어떨땐 10개올리면 저러고 ㅡ.ㅡ
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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