이미지에 워터마크 새기기 수정질문드려요 정보
이미지에 워터마크 새기기 수정질문드려요
본문
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 이미지 파일에는 워터마크가 안찍히던데 이것도 해결하고싶습니다.
댓글 전체
$data_path = $g4[path]."/data/file/$bo_table";
원본파일이 저장된 디랙만 검색하기 때문에 에디터로 올린파일은 찍히지 않습니다.
에디터로 저장된 이미지는
/data/cheditor4/0909/
/data/cheditor/0909/ 이런식으로 저장됩니다.
그 아래 에디터디랙 검색하는 루틴하나 추가하세요.
방법은 예전에 제가 질답에 답변을 올린듯 한데요..
Q2. 다음분에게 pass~
측 에디터가 업로드 하는 루틴을 찾아서 그부분에 워터마크를 생성하는 루틴을 프로그램 하셔야 합니다.
간단한 작업이 아닙니다.
2. 서버의 GD 관련 버젼이나 gif 관련 설정을 서버관리자에게 물어보세요
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 = "";
}
아구, 다른 에디터 이미지 첨부 썸네일 생성 스킨을 다운받아서 소스 보고 만드는 방법을 보려했는데 잘안되네요^^,