열람자의 IP를 워터마크로 이용하기

Posted by 대혀니_
2016. 8. 12. 00:58 IT/홈페이지

이것을 사용하시려면 GD 라이브러리가 설치되어 있어야 합니다.

 

새로 생성해야 하는 것은 총 3개입니다.

1. 이미지를 생성하는 php 파일, 2. 이미지 생성의 기반이 되는 검은배경의 png 파일, 3. 이미지가 저장되는 폴더

저장하는 방식을 사용하는 것은 관리의 유용성을 위해서 입니다.

 

1. 이미지를 생성하는 php 파일

<?php
 
$string = $_GET['ip'];
$filename = "$_SERVER[REMOTE_ADDR]";
$directory = "3번의 폴더명/".$filename.".png";
 
$im = imagecreatefrompng("2번의 파일명.png");
$black = imagecolorallocate($im,0,0,0);
$textcolor = imagecolorallocate($im,245,245,245);
imagecolortransparent($im, $black);
 
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
Imagestring($im,2,rand(5,200),rand(5,200),$string,$textcolor);
 
header("Content-type: image/png");
imagepng($im, $directory, 5);
imagepng($im);
imagedestroy($im);
 
?>

 

위와 같은 php 파일을 생성하여 최상위에 넣어줍니다. (2번 파일과 3번 폴더도 같이 최상위에 생성하시면 됩니다.) 글자색깔은 $textcolor을 바꾸시면 됩니다. 제 경우 연한 것을 선호하여 245, 245, 245로 하였습니다. 글자크기도 바꿀 수 있는데 Imagestring의 $im 뒤의 2라는 숫자를 교체하시면 바뀝니다. (5까지 지원)

 

2. png 파일

2번 png 파일의 경우 저는 300x300 기준의 크기로 제작했습니다. php 파일을 보시면 텍스트의 위치를 랜덤으로 했는데 png 파일의 크기는 위치의 범위와 관련이 있습니다. 만약 png 파일의 크기가 이보다 작다면 Imagestring의 rand(5,200)에서 200의 숫자를 줄여야 합니다. 크다면 그 반대로 높이는 게 좋습니다. 배경색은 무조건 검정(#000)이어야 합니다. 그래야지 글자만 제외하고 투명하게 변합니다. php에 입력한 이름과 동일한 파일명을 가져야 합니다.

 

3. 이미지가 저장되는 폴더

php에 입력한 이름과 동일해야 합니다.

 

마지막으로

레이아웃이나 게시판 스킨 등을 수정하여 style 태그를 삽입합니다. html 파일 내부에 사용하셔야 합니다.

<style>원하는 부분의 클래스명{background:url(../php파일명.php?ip={getenv('REMOTE_ADDR')})}</style>