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

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

logo_mark.gif
nana.jpg

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

워터마크 테스트용 이미지 첨부합니다. 그누보드/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);
 }
 }
 } 
 ?>


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

댓글 작성

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

로그인하기

댓글 26개

베이직스킨을 쓰고있는데.. write_update.skin.php 파일이 없네요 ㅠㅠ
없으면 임의로 하나 만드시면 됩니다~
맨위 상단에..
<?
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으로 맞추어 넣은 것에서 투명도 조정을 하시면 어느 정도 원하시는 효과가 있지 않을까 생각합니다.
원래 png파일이 제일 깨끗한데 png로 해보았지만 제대로 입혀지지 않아서 위와 같이 했습니다.
비둘기님 / 투명 워터마크를 만들실때 원하시는 폰트가 크질않다면 폰트의 anti-alias를 none로 한번 해보세요..
가장무난한게...힌글씨에 테두리를 1px정도의 약간 검은색을 입혀주시는게 가장 잘 나올겁니다.

그리고 포샵에서 여러가지 응용을 하시면 만족할만한 결과물이 나올것 같습니다.
원하는 결과는 본인의 몫이겠죠?...^^
암튼 건투를 빕니다.
업로드 이미지 일괄 워터마크 적용하기
편리한 기능이네요 감사합니다 ^^
답변 감사합니다 .^^
http://monge.co.kr/bbs/board.php?bo_table=freeboard&wr_id=3
위와같이 깨집니다 ㅡ.ㅡ 어떻게 해야할까요..

참, 업로드된 이미지 모두가 깨지는게 아니고 3~4개 게시물 업로드하고 5~6번째 게시물에 저러네요..
어떨땐 10개올리면 저러고 ㅡ.ㅡ
에디터로 업로드된건 안나오는군요
유용할것 같네요.
업로드 이미지 일괄 워터마크 적용하기

적용할 만한 팁이네요. 감사합니다.
thumnail 적용시
좋은 팁 감사합니다~
잘 보았습니다.

게시판 목록

그누4 팁자료실

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