RadarURL

조회 수 4729 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

얼마전 수피아님의 블로그를 방문해보니, 불펌으로 인한 트래픽 오버문제로 속상해하시는 모습을 보았다. 퍼가는 사람이야 아무런 문제의식도 없이 그냥 긇어가는 것이겠지만, 설치형 블로그를 운영하는 블로거의 입장에선 정말 골치아픈 문제가 아닐수 없다.

그러다가 오늘, 우연히 올블을 통해 워터마크를 삽입하는 방법을 알게되어, 이 곳에 소개해 놓는다.

원문 페이지 : 블로그 공장 포럼

먼저 ".htaccess"라는 이름의 파일을 만들어 아래와 같이 쓴다.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$|.*jepg$|.*bmp$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !loose\.hubweb\.net [NC]
RewriteCond %{HTTP_REFERER} !loose\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule (.*) image.php?image=$1


4번째부터 6번째 줄까지는 주소를 적는 부분이다. 위 소스에서는 loose.hubweb.net과 google에게 링크를 허용하였다. 주소를 적는 방법은 "."이 들어간 곳에 \를 써 주면 된다.

예) http://loose.hubweb.net/tatter   ->  loose\.hubweb\.net/tatter

image.php?image=$1 는 허가된 주소외의 페이지에서 그림을 읽어갈때, 이미지와 워터마크를 합성하여 보여주는 곳이다. 그냥 링크만 차단시키고 싶은 경우, 아무 글자나 써 주면 된다.

다음으로 image.php 파일을 만든다.

<?
define ("WATERMARK", "watermark.jpg");

header("Content-type: image/jpeg");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

$pic = strip_tags( $_GET['image'] );

$image_url = urldecode($pic);

if (!@fopen($image_url, "r")) {
$dst_img = imagecreatefromjpeg(WATERMARK);
$res = imagejpeg($dst_img, "", 100);
die();
}

$file = pathinfo($image_url);
switch(strtoupper($file["extension"])) {
case "JPG":
$src_img = imagecreatefromjpeg($image_url);
break;
case "JEPG":
$src_img = imagecreatefromjpeg($image_url);
break;
case "BMP":
$src_img = imagecreatefromjpeg($image_url);
break;
 case "GIF":
$src_img = imagecreatefromgif($image_url);
break;
case "PNG":
$src_img = imagecreatefrompng($image_url);
break;
}

$src_w = imagesx($src_img);
$src_h = imagesy($src_img);

$portion = $src_h / $src_w;
$dest_w = 300;
$dest_h = round($dest_w * $portion);

$dst_img = imagecreatetruecolor($dest_w, $dest_h);
imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $dest_w, $dest_h, $src_w, $src_h);

$watermark = imagecreatefromjpeg(WATERMARK);

$watermark_w = imagesx($watermark);
$watermark_h = imagesy($watermark);

$overlay_img = imagecreatetruecolor($watermark_w, $watermark_h);
imagecopy($overlay_img, $watermark, 0,0,0,0, $watermark_w, $watermark_h);
imagedestroy($watermark);

$white = imagecolorallocate($overlay_img, 0xFF, 0xFF, 0xFF);
imagecolortransparent($overlay_img, $white);

$offsetX = $dest_w - $watermark_w - 3;
$offsetY = $dest_h - $watermark_h - 3;

imagecopymerge($dst_img,$overlay_img,$offsetX,$offsetY,0,0,$watermark_w,$watermark_h, 100);
imagedestroy($overlay_img);

$res = imagejpeg($dst_img, "", 100);
imagedestroy($dst_img);
?>


중간을 보면

$dest_w = 300;
$dest_h = round($dest_w * $portion);

라는 부분이 있는데, 이 곳이 워터마크 그림의 사이즈를 조절하는 곳이다. 식을 보면 가로 사이즈는 300이고, 높이는 가로사이즈에 맞추어 조절하도록 되어있는데, 워터마크 그림사이즈에 맞추어 원하는 사이즈를 직접 써 넣으면
된다.

이제 마지막으로 워터마크를 제작한다. 적당한 이미지로 제작한뒤, watermark.jpg로 저장하여 준다.

자, 그럼, 이제 작업은 다 끝났다. 위의 순서대로 작업을 마치었다면, .htaccess파일과 image.php, 그리고 watermark.jpg 파일이 있을것이다. 이 파일을 태터폴더 하위의 /attach/1 에 모두 업로드한다. 그럼 끝.

아래에 작업한 파일을 첨부하니, 혹 이해가 안가시는 분들은 참고하시길 바란다. ^^

 

출처 : http://sogmi.com/501

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 927838
1646 기타 [사업대가] SW사업 대가산정 가이드 file JaeSoo 2012.02.28 5807
1645 기타 [사업대가] 2011년 소프트웨어사업대가의 기준 해설서 file JaeSoo 2012.02.28 6697
1644 기타 [노임단가] 2011년도 적용 SW기술자 노임단가 공표 file JaeSoo 2012.02.28 8692
1643 논문 MSB , LSB 란? JaeSoo 2012.02.28 10254
1642 기타 공무원 직종구분 (경력직공무원-일반직/특정직/기능직, 특수경력직공무원-정무직/별정직/계약직) (국가공무원법 제2조) file JaeSoo 2012.02.28 6042
1641 기타 공무원 제도 JaeSoo 2012.02.28 4252
1640 기타 게리멘더링(Gerrymandering)이란? file JaeSoo 2012.02.29 4653
1639 하드웨어 레이드카드 IBM ServeRAID M5015 JaeSoo 2012.03.04 5389
1638 소프트웨어 내부 단편화(internal fragmentation), 외부 단편화(external fragmentation) JaeSoo 2012.03.04 6033
1637 논문 주요 국제 학술지 양식 모음 file JaeSoo 2012.03.04 8934
1636 보안 강제적 접근통제(MAC, Mandatory Access Control), 임의적 접근통제(DAC, Discretionary Access Control), 역할기반 접근통제(RBAC, Role Based Access Control) JaeSoo 2012.03.05 5691
1635 경제 소아 표준 성장 도표 (신체 발육 표준치 : 체중, 신장, 체질량지수, 머리둘레) file JaeSoo 2012.03.06 13054
1634 웹 프로그래밍 아파치 리라이트(rewrite) 엔진과 워터마킹을 이용한 이미지 무단 링크 방지 JaeSoo 2012.03.07 3930
1633 웹 프로그래밍 .htaccess 사용해서 이미지 외부링크 막기 JaeSoo 2012.03.07 6840
1632 웹 프로그래밍 동영상 외부 링크 금지 JaeSoo 2012.03.07 5501
1631 웹 프로그래밍 XE에서 외부에서 자료를 링크거는 행위 방지 JaeSoo 2012.03.07 4521
1630 웹 프로그래밍 SetEnvIf 와 SetEnvIfNocase 의 차이 JaeSoo 2012.03.07 4625
» 웹 프로그래밍 제로보드XE, 테터 등 설치형 홈페이지, 블로그에 워터마크 삽입하기 file JaeSoo 2012.03.07 4729
1628 웹 프로그래밍 .htaccess 를 이용한 이미지 핫링크 예방법 file JaeSoo 2012.03.07 5544
1627 소프트웨어 word 2010양식으로 저장 후 수식개체(mathtyle)수직 정렬 문제 file JaeSoo 2012.03.10 5045
Board Pagination Prev 1 ... 37 38 39 40 41 42 43 44 45 46 ... 124 Next
/ 124


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너