이미지에 워터마크 새기기 수정질문드려요 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

이미지에 워터마크 새기기 수정질문드려요 정보

이미지에 워터마크 새기기 수정질문드려요

본문

아래 워터마크를 적용하였는데요..




write_update.skin.php 에 아래 소스를 추가해서 워터마크를 적용시켰습니다.
적용된 예 :  http://lifeinside.dyndns.org/bbs/tb.php/B35/41

소스 --------------------

//##add060613 이미지합성함수 $transparency:투명도 $jpegQuality:화질  $margin:여백
function waterMark($fileInHD, $wmFile, $transparency = 30, $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);
}
} //##########
    }//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//##add060613 이미지합성함수 워터마크
--------------------------------------------------

이게  gif 이미지 및 에디터로 삽입한 이미지에는 워터마크가 찍히질 않더라구요.

Q1.에디터 (치에디터, 지에디터 등등...) 로 삽입한 이미지에도 워터마크가 찍히도록하고싶습니다.
Q2. gif 이미지 파일에는 워터마크가 안찍히던데 이것도 해결하고싶습니다.

  • 복사

댓글 전체

Q1.에디터 (치에디터, 지에디터 등등...) 로 삽입한 이미지에도 워터마크가 찍히도록하고싶습니다.

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

원본파일이 저장된 디랙만 검색하기 때문에 에디터로 올린파일은 찍히지 않습니다.

에디터로 저장된 이미지는
/data/cheditor4/0909/
/data/cheditor/0909/ 이런식으로 저장됩니다.

그 아래 에디터디랙 검색하는 루틴하나 추가하세요.
방법은 예전에 제가 질답에 답변을 올린듯 한데요..

Q2. 다음분에게 pass~
1. cheditor 의 경우는 별개의 프로그램을 추가 한것입니다.
측 에디터가 업로드 하는 루틴을 찾아서 그부분에 워터마크를 생성하는 루틴을 프로그램 하셔야 합니다.
간단한 작업이 아닙니다.

2. 서버의 GD 관련 버젼이나 gif 관련 설정을 서버관리자에게 물어보세요
서버 gd관련 정보는 아래와같습니다.

GD Support: Yes!
GD Version: bundled (2.0.34 compatible)
TTF Support (FreeType): No
No FreeType support. Cannot use TTF fonts, but you can use GD fonts
JPEG Support: Yes!
PNG Support: Yes!
GIF Read Support: Yes!
GIF Create Support: Yes!
여기있네요... 제가 예전에 올린것과  비슷한듯 합니다. 제거는 찾을 수가 없네요. 삭제시켜서 스킨도 없고..
먼저 /data/file/bo_table 검색하고 없을 경우 에디터쪽을 검색하게 만들었었는데.. 이것도 비슷합니다.
응용해 보세요..
참고로 저의 경우는 사용에디터를 변수로 받아서 에디터부분에 자동으로 처리하게 만들었었는데 아래보기는 수동으로 잡아주셔야 됩니다.

http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=128254
위링크에서 첨부된
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=87375&sca=&sfl=wr_name%2C1&stx=%C0%AF%BE%C6%BF%F8&sop=and

게시물내용을 유아원님께서 삭제를 하셨네요ㅠㅠ
스킨을 다운 받으실 필요는 없어요...
유아원님이 위의 방식으로 처리한 소스가 나와 있으니 그걸 참고 하시라구요...

처음에 /data/file/bo_table에서 뽑고
중간에 보시면 에디터에서 뽑아오는....부분
       
        } else {
        // 에디터
       
            // 내용뽑고
            $img_content = "{$list[$i]['wr_content']}";
       
            $img_tmp1 = stristr($img_content,'/data/geditor/'); // 지에디터 디렉토리 체크
            $img_tmp2 = strpos($img_tmp1,'>'); // 닫고
            $img_tmp3 = stristr(substr($img_tmp1,0,$img_tmp2+1),'geditor'); // 지에디터 부터 경로 시작
            $img_tmp4 = substr($img_tmp3,0,strpos($img_tmp3,'"')); // 더블쿼트 이전까지
            $img_fileurl = $g4['path']."/data/".$img_tmp4; // 원본파일 상대경로
       
            // 디렉토리에 파일이 있다면.
            if (file_exists($img_fileurl)) {
       
                // 파일명
                $img_filename = substr($img_tmp4,13);
       
            } else {
       
                // 파일명이 읍네 ?
                $img_filename = "";
       
            }
이것과 참고해볼려고 했는데, 위 소스에서 else 가있으니 if 가 앞에 나와야할텐데...
아구, 다른 에디터 이미지 첨부 썸네일 생성 스킨을 다운받아서 소스 보고 만드는 방법을 보려했는데 잘안되네요^^,
© SIRSOFT
현재 페이지 제일 처음으로