워터마킹 관련 문의입니다. 정보
워터마킹 관련 문의입니다.본문
도메인의 통한 워터마크를 처리하려 합니다.
아래는 이전에 하바나님께서 문의 하신 내용들입니다.
워터마크 문제를 해결하신것으로 알고 있는데...
현재 구현이 그누3 용인지 그누4에도 되는지 알고 싶습니다.
복사해서
bbs/write_update.php 에 넣어 봐도 여전히 안되네요.
워터마크 처리와 어떤 파일에 소스를 넣어야 되는지 고수님들의 의견을 부탁드립니다.
댓글 전체
위 스킨은 예전에 사용을 하고 있었구요. 이스킨이 아닌 현재 하바나님께서 도메인 이름을 이용해서 워터마킹 처리가 되는거거든요. 리플을 부탁드립니다.
스피드님 질문이 잘 이해가 가질 않네요.
그림을 업로드하는 서버의 도메인명을 자동으로 얻어와서 워터마크 효과를 구현하려고 하는지요?
하바나님께서 구현하신것은 그누보드 3용이네요.
그누보드 4라도 업로드 경로를 지정하는 부분만 다르니까 별 문제가 없어보입니다.
제가 질문을 바로 이해하고 있다면 바로 소스를 다듬어 올려드리겠습니다.
도움은 못드리고 귀찮게 해서 죄송합니다....ㅠ.ㅠ
그림을 업로드하는 서버의 도메인명을 자동으로 얻어와서 워터마크 효과를 구현하려고 하는지요?
하바나님께서 구현하신것은 그누보드 3용이네요.
그누보드 4라도 업로드 경로를 지정하는 부분만 다르니까 별 문제가 없어보입니다.
제가 질문을 바로 이해하고 있다면 바로 소스를 다듬어 올려드리겠습니다.
도움은 못드리고 귀찮게 해서 죄송합니다....ㅠ.ㅠ
그누보드 3으로 테스트했습니다.
이것을 원하시는것인지는 모르겠네요.
skin폴더안에 gbupdate.skin.php에 기록하시면 되겠네요.
<?
// 업로드된 파일에 로고를 입히자.
$string_a = substr(strchr($_SERVER["HTTP_HOST"],"."),1); //abc.co.kr을 취함
$string_b=$member[mb_id]; // 회원 아이디
$string_c=$member[mb_name]; // 회원 이름
// 파일 업로드
for ($i=1; $i<=$cfg[file_count]; $i++) {
$tmp_file = $_FILES["wr_file$i"][tmp_name];
$filename = $_FILES["wr_file$i"][name];
if (preg_match("!.*?(\.jpg|.gif|.png)$!i", $filename)){ // 그림파일일경우만 작업한다.
$ext=substr(strrchr($dest_file,"."),1); // 확장자를 구한다.
$ext=strtolower($ext);
switch ($ext) { // 확장자에 따라 불러오는 함수가 다르게 한다.
case "jpg" : case "jpeg" :
$tmp_file=@imagecreatefromjpeg($dest_file); // 원본이미지로부터 임시작업파일을 만든다.
break;
case "gif" :
$tmp_file=@imagecreatefromgif($dest_file);
break;
case "png" :
$tmp_file=@imagecreatefrompng($dest_file);
break;
}
$size=getimagesize("$dest_file"); // 사이즈 구하기
$x1=($size[0]-151); // 좌측 x좌표
$y1=($size[1]-27); // 촤측 y좌표
$x2=($size[0]-10); // 우측 x좌표
$y2=($size[1]-10); // 우측 y좌표
$gray=ImageColorAllocate($tmp_file,170,170,170); // 회색색깔을 구한다. 이작업시 #ffffff 와 같은 방식은 쓸수 없다.
$white=ImageColorAllocate($tmp_file,255,255,255); // 하얀색을 구한다.
$black=ImageColorAllocate($tmp_file,0,0,0); // 검정색을 구한다.
$blue=ImageColorAllocate($tmp_file,83,111,183); // 푸른색을 구한다.
ImageString($tmp_file,2,$x1+7,$y1+1,$string_a,$white); // 우측하단에 글자 넣기
ImageString($tmp_file,2,$x1+8,$y1+2,$string_a,$black); // 우측하단 글자 음영
ImageString($tmp_file,6,11,11,$string_b,$black); // 촤측 상단 글자 넣기
ImageString($tmp_file,6,10,10,$string_b,$blue); // 좌측 상단 글자 음영
ImageString($tmp_file,5,11,26,$string_c,$black);
ImageString($tmp_file,5,10,25,$string_c,$gray);
$prefix = substr(md5(uniqid(time())),0,8) . "_"; // 접두어
// 접두사를 붙인 파일명
$upload[$i] = $prefix . $filename;
$dest_file = "./data/file/$bo_table/$upload[$i]";
switch ($ext) { // 변경된 파일을 확장자에 달리 적용하여 저장 이프로그램은 기존파일을 덥어씌움
case "jpg" : case "jpeg" :
Imagejpeg($tmp_file,$dest_file);
break;
case "gif" :
Imagegif($tmp_file,$dest_file);
break;
case "png" :
Imagepng($tmp_file,$dest_file);
break;
}
ImageDestroy($tmp_file); // 저장후 임시작업파일을 삭제
chmod($dest_file, 0606);
$sql_file .= " , wr_file{$i} = '$upload[$i]' ";
}
$sql = " update $write_table
set ca_id = '$ca_id' $sql_file where wr_id = '$wr[wr_id]' ";
sql_query($sql);
}
?>
이것을 원하시는것인지는 모르겠네요.
skin폴더안에 gbupdate.skin.php에 기록하시면 되겠네요.
<?
// 업로드된 파일에 로고를 입히자.
$string_a = substr(strchr($_SERVER["HTTP_HOST"],"."),1); //abc.co.kr을 취함
$string_b=$member[mb_id]; // 회원 아이디
$string_c=$member[mb_name]; // 회원 이름
// 파일 업로드
for ($i=1; $i<=$cfg[file_count]; $i++) {
$tmp_file = $_FILES["wr_file$i"][tmp_name];
$filename = $_FILES["wr_file$i"][name];
if (preg_match("!.*?(\.jpg|.gif|.png)$!i", $filename)){ // 그림파일일경우만 작업한다.
$ext=substr(strrchr($dest_file,"."),1); // 확장자를 구한다.
$ext=strtolower($ext);
switch ($ext) { // 확장자에 따라 불러오는 함수가 다르게 한다.
case "jpg" : case "jpeg" :
$tmp_file=@imagecreatefromjpeg($dest_file); // 원본이미지로부터 임시작업파일을 만든다.
break;
case "gif" :
$tmp_file=@imagecreatefromgif($dest_file);
break;
case "png" :
$tmp_file=@imagecreatefrompng($dest_file);
break;
}
$size=getimagesize("$dest_file"); // 사이즈 구하기
$x1=($size[0]-151); // 좌측 x좌표
$y1=($size[1]-27); // 촤측 y좌표
$x2=($size[0]-10); // 우측 x좌표
$y2=($size[1]-10); // 우측 y좌표
$gray=ImageColorAllocate($tmp_file,170,170,170); // 회색색깔을 구한다. 이작업시 #ffffff 와 같은 방식은 쓸수 없다.
$white=ImageColorAllocate($tmp_file,255,255,255); // 하얀색을 구한다.
$black=ImageColorAllocate($tmp_file,0,0,0); // 검정색을 구한다.
$blue=ImageColorAllocate($tmp_file,83,111,183); // 푸른색을 구한다.
ImageString($tmp_file,2,$x1+7,$y1+1,$string_a,$white); // 우측하단에 글자 넣기
ImageString($tmp_file,2,$x1+8,$y1+2,$string_a,$black); // 우측하단 글자 음영
ImageString($tmp_file,6,11,11,$string_b,$black); // 촤측 상단 글자 넣기
ImageString($tmp_file,6,10,10,$string_b,$blue); // 좌측 상단 글자 음영
ImageString($tmp_file,5,11,26,$string_c,$black);
ImageString($tmp_file,5,10,25,$string_c,$gray);
$prefix = substr(md5(uniqid(time())),0,8) . "_"; // 접두어
// 접두사를 붙인 파일명
$upload[$i] = $prefix . $filename;
$dest_file = "./data/file/$bo_table/$upload[$i]";
switch ($ext) { // 변경된 파일을 확장자에 달리 적용하여 저장 이프로그램은 기존파일을 덥어씌움
case "jpg" : case "jpeg" :
Imagejpeg($tmp_file,$dest_file);
break;
case "gif" :
Imagegif($tmp_file,$dest_file);
break;
case "png" :
Imagepng($tmp_file,$dest_file);
break;
}
ImageDestroy($tmp_file); // 저장후 임시작업파일을 삭제
chmod($dest_file, 0606);
$sql_file .= " , wr_file{$i} = '$upload[$i]' ";
}
$sql = " update $write_table
set ca_id = '$ca_id' $sql_file where wr_id = '$wr[wr_id]' ";
sql_query($sql);
}
?>
포대장님 안녕하십니까.
아닙니다. 제가 오히려 귀찮게 해드려서 죄송하지요.
답변에 너무 감사드립니다.
우선 전에 말씀을 주신 스킨의 경우에는 지정된 이미지를 불려 와서 새로 이미지를 만들지 않습니까.
하바나님께서 구현을 하신것은 도메인 이름을 지정해놓으면 도메인명 텍스트를 워터마크 처리가 되어 구현이 되는게 아닌지요.
그리고 gbupdate.skin.php 파일의 경우 그누4에서는 존재하지 않는 파일로 알고 있습니다.
일단 writeupdate.php 파일들은 이겠지요.
갤러리 스킨의 경우 대부분 gdupdate.skin.php 파일을 사용하지 않고 있네요....
이문제의 답변이 되지 않을경우 혹시 지난 이미지 합치는 스킨의 위치 지정있지 않습니까.
현재 왼쪽하단에 나타나게 되어져 있는데 찾아보니 오른쪽 하단 위치 지정에 대한 부분은 있는데... 가운데 처리에 대한 부분에 대한 설명이 가능하면 설명을 부탁드립니다.
답변에 너무 감사드립니다.
아닙니다. 제가 오히려 귀찮게 해드려서 죄송하지요.
답변에 너무 감사드립니다.
우선 전에 말씀을 주신 스킨의 경우에는 지정된 이미지를 불려 와서 새로 이미지를 만들지 않습니까.
하바나님께서 구현을 하신것은 도메인 이름을 지정해놓으면 도메인명 텍스트를 워터마크 처리가 되어 구현이 되는게 아닌지요.
그리고 gbupdate.skin.php 파일의 경우 그누4에서는 존재하지 않는 파일로 알고 있습니다.
일단 writeupdate.php 파일들은 이겠지요.
갤러리 스킨의 경우 대부분 gdupdate.skin.php 파일을 사용하지 않고 있네요....
이문제의 답변이 되지 않을경우 혹시 지난 이미지 합치는 스킨의 위치 지정있지 않습니까.
현재 왼쪽하단에 나타나게 되어져 있는데 찾아보니 오른쪽 하단 위치 지정에 대한 부분은 있는데... 가운데 처리에 대한 부분에 대한 설명이 가능하면 설명을 부탁드립니다.
답변에 너무 감사드립니다.
저는 아직 그누3을 사용중이라 그누4에 대한 답변을 드릴수가 없네요..ㅋ
가운데 처리 부분을 다음과 같이 하시면 가능하리라 봅니다.
$x = ((imagesx($tmp_file)-(ImageFontWidth($string_a) * strlen($string_a)))/2);
$y = (imagesy($tmp_file)/2) - (imagefontheight($string_a)/2);
ImageString($tmp_file,5,$x,$y,$string_a,$black);
ImageString($tmp_file,5,$x+1,$y+1,$string_a,$gray);
참고가 되셨기를....
가운데 처리 부분을 다음과 같이 하시면 가능하리라 봅니다.
$x = ((imagesx($tmp_file)-(ImageFontWidth($string_a) * strlen($string_a)))/2);
$y = (imagesy($tmp_file)/2) - (imagefontheight($string_a)/2);
ImageString($tmp_file,5,$x,$y,$string_a,$black);
ImageString($tmp_file,5,$x+1,$y+1,$string_a,$gray);
참고가 되셨기를....
포대장님 답변 감사드립니다.
처음으로 채택되어보네요.
제가 오히려 감사드립니다.^^
제가 오히려 감사드립니다.^^