2006/01/09에 해당되는 글 3건
Category : 느낌/스크랩

보라색의 의미..
고귀함, 신성함, 죽음 등...
옛날엔 보라색을 구하기 어려웠대요. 그래서 보라색을 사용하는 것은 그 자체로 지체높은 고귀한 신분이라는 것을 증명하였답니다.
또 보라색이 파랑색(하늘의 상징)과 빨강색(인간,피를 상징)의 혼색이어서 신과 인간의 조화를 상징하는 그래서 신성하고 고귀함을 상징하는 색이라고도 합니다.
'핏빛보다 검은 보라색'이란 의미에서 죽음을 상징하기도 하고요...
Category : 데이터뱅크/Web
개인 계정에서 블로그등의 사이트를 운영하시는 분들 중 가끔 외부에서의 컨텐츠 직링크로 인해 트래픽 초과에 걸리시는 분들이 많습니다. 트래픽 문제가 아니더라도, 무단 링크로 인해 저작권을 침해받는 경우도 있겠죠.
이를 해결하기 위해 레퍼러비교 같은 방법도 쓰곤 하는데, 아마 .htaccess 파일을 이용한 것도 많이들 아실 겁니다.
간단히, .htaccess와 워터마킹 기술을 이용해 이미지 링크 제어를 하는 법을 소개합니다.
일단, 이미지들이 저장되는 디렉토리에 .htaccess파일을 만듭니다. (이미 존재한다면 아래의 소스를 마지막에 추가하시면 됩니다.)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !explug\.com [NC]
RewriteCond %{HTTP_REFERER} !eouia0\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule (.*) image.php?image=$1
...........
잠깐 설명을 하자면,
RewriteCond %{HTTP_REFERER} !explug\.com [NC]
RewriteCond %{HTTP_REFERER} !eouia0\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
이 부분에 링크를 허용할 URL들을 기재합니다. 정규식 패턴이므로 잘 알아서.. :)
위의 예의 경우 explug.com, eouia0가 포함되는 사이트, google 등에 링크를 허용한 경우입니다. 이 경우에는 원본 이미지를 마음대로 가져다 쓸 수 있습니다.
그외의 URL에서 링크가 걸릴 경우에는
RewriteRule (.*) image.php?image=$1
에 따라, image.php?image=파일이름 으로 리다이렉트됩니다. 만약 그냥 링크 자체를 끊고 싶으시다면 여기에 아무거나 써주셔도 되지요.
이제 워터마킹 처리를 위해 image.php를 작성합니다. GD라이브러리를 사용했으므로 GD가 사용가능한 계정이어야 합니다.
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 "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);
?>
링크를 허용한 사이트에서는 원본이, 링크를 허용하지 않은 사이트에서는 image.php에 의해 워터마크처리된 이미지로 링크가 걸리게 됩니다. 여기에서는 예를 위해 워터마킹 처리된 이미지의 사이즈를 가로 300으로 고정시켰지만 이 부분은 적당히 소스를 고치시면 원하는 대로 적용시키실 수 있으실 겁니다.
이를 해결하기 위해 레퍼러비교 같은 방법도 쓰곤 하는데, 아마 .htaccess 파일을 이용한 것도 많이들 아실 겁니다.
간단히, .htaccess와 워터마킹 기술을 이용해 이미지 링크 제어를 하는 법을 소개합니다.
일단, 이미지들이 저장되는 디렉토리에 .htaccess파일을 만듭니다. (이미 존재한다면 아래의 소스를 마지막에 추가하시면 됩니다.)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !explug\.com [NC]
RewriteCond %{HTTP_REFERER} !eouia0\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule (.*) image.php?image=$1
...........
잠깐 설명을 하자면,
RewriteCond %{HTTP_REFERER} !explug\.com [NC]
RewriteCond %{HTTP_REFERER} !eouia0\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
이 부분에 링크를 허용할 URL들을 기재합니다. 정규식 패턴이므로 잘 알아서.. :)
위의 예의 경우 explug.com, eouia0가 포함되는 사이트, google 등에 링크를 허용한 경우입니다. 이 경우에는 원본 이미지를 마음대로 가져다 쓸 수 있습니다.
그외의 URL에서 링크가 걸릴 경우에는
RewriteRule (.*) image.php?image=$1
에 따라, image.php?image=파일이름 으로 리다이렉트됩니다. 만약 그냥 링크 자체를 끊고 싶으시다면 여기에 아무거나 써주셔도 되지요.
이제 워터마킹 처리를 위해 image.php를 작성합니다. GD라이브러리를 사용했으므로 GD가 사용가능한 계정이어야 합니다.
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 "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);
?>
링크를 허용한 사이트에서는 원본이, 링크를 허용하지 않은 사이트에서는 image.php에 의해 워터마크처리된 이미지로 링크가 걸리게 됩니다. 여기에서는 예를 위해 워터마킹 처리된 이미지의 사이즈를 가로 300으로 고정시켰지만 이 부분은 적당히 소스를 고치시면 원하는 대로 적용시키실 수 있으실 겁니다.
* 스크랩 출처
Category : 2006년/2006년 1월
미치겠다..
또 지름신이 발동됐나봐.
디카를 지르게 될것같아.
오늘 낼 한다. 오늘 검색 다 끝내놨구 낼 아마 결제하러 갈듯.. -_-;;
OLYMPUS Camedia C-770UZ
1/2.7인치 CCD / 400만 유효화소 / 3200x2400 / XD카드 / 광학 : 10X, 디지털: 4X
-----------------
OLYMPUS Camedia C-765UZ 올림푸스한국
CCD / 400만 유효화소 / 2288x1712 / XD카드 / 광학 : 10X, 디지털 : 4X
-----------------
Pentax Optio S5z 젭센코리아
1/2.5인치 CCD / 500만 유효화소 / 2560x1920 / SD / 내장메모리(9.8MB) / 광학 : 3X, 디지털 : 4X
-----------------
KODAK EasyShare DX-6490 한국코닥
CCD / 400만 유효화소 / 2304x1728 / SD/MMC카드 / 광학 : 10X, 디지털 : 3X
4개로 좁혀졌는데 이중 아마 765uz일 가능성이 큰거 같아.
근데 단점이 떨림보정기능이 없다는..
배터리도 리듐이구 AA면 사용하기 더 좋을것 같은데 말야.
어쩌나.. 한 18개월 할부로 해버릴까? -0-
또 지름신이 발동됐나봐.
디카를 지르게 될것같아.
오늘 낼 한다. 오늘 검색 다 끝내놨구 낼 아마 결제하러 갈듯.. -_-;;
OLYMPUS Camedia C-770UZ
1/2.7인치 CCD / 400만 유효화소 / 3200x2400 / XD카드 / 광학 : 10X, 디지털: 4X
-----------------
OLYMPUS Camedia C-765UZ 올림푸스한국
CCD / 400만 유효화소 / 2288x1712 / XD카드 / 광학 : 10X, 디지털 : 4X
-----------------
Pentax Optio S5z 젭센코리아
1/2.5인치 CCD / 500만 유효화소 / 2560x1920 / SD / 내장메모리(9.8MB) / 광학 : 3X, 디지털 : 4X
-----------------
KODAK EasyShare DX-6490 한국코닥
CCD / 400만 유효화소 / 2304x1728 / SD/MMC카드 / 광학 : 10X, 디지털 : 3X
4개로 좁혀졌는데 이중 아마 765uz일 가능성이 큰거 같아.
근데 단점이 떨림보정기능이 없다는..
배터리도 리듐이구 AA면 사용하기 더 좋을것 같은데 말야.
어쩌나.. 한 18개월 할부로 해버릴까? -0-






