본문 바로가기
homaki.tistory.com의 구글 광고
컴퓨터

[PHP] GD를 이용해 IP 워터마크 배경 이미지 만들기

by homaki 2016. 11. 18.
◆ 이 블로그의 모든 게시물은 여러 방법을 이용해 다른 곳으로 퍼가는 것은 절대 허용하지 않습니다.
◆ 단, 게시물 링크를 남기는 것만 허용합니다.
이 문장 바로 아래글 내용 끝에 바로 나오는 광고티스토리 자체광고로 이 블로그와 무관합니다.

GD 이미지 생성을 이용해서 불펌방지용 IP 워터마크 이미지 배경을 만들어 보자.

어... 그냥 텍스트로 넣는 것이 더 편하긴 한데...



어쨌든 위와 같이 알록달록하고 무작위 위치로 나타나는 워터마크를 만들어 보자.


<?php
// watermark.php

# 접속자 IP 주소를 불러온다.
$ip = $_SERVER['REMOTE_ADDR'];

# 이미지를 생성한다.
# imagecreate(int width, int height);
$im = imagecreate(360, 300);

# 이미지 배경색을 설정한다.
# imagecolorallocate(생성 이미지, int red, int green, int blue, int alpha);
# RGB 색상 범위는 0~255 / alpha 범위는 0~127(투명)
$bg = imagecolorallocatealpha($im, 0, 0, 0, 127);

# PNG로 내보내기 위해 헤더를 설정한다.
header("Content-Type: image/png");

# 생성한 이미지 안에 무작위 위치, 무작위 색으로 IP 주소를 여러 개를 넣는다.
# 개수를 바꾸려면 '$i <= 10;'의 10을 줄이거나 늘리면 된다.
for ($i = 0; $i <= 10; $i++) {
	# 삽입할 글자(IP 주소)의 색을 설정한다.
	# rand();를 사용해 글자색과 알파값을 무작위로 나오게 했다.
	$tc = imagecolorallocatealpha($im, rand(0,240), rand(0,240), rand(0,240), rand(100,115));

	# 이미지에 글자(IP 주소)를 넣는다.
	# imagestring(생성 이미지, 글자크기[1-5], 가로위치, 세로위치, 표시할 문자, 글자색);
	# rand();를 사용해 글자가 표시될 위치를 무작위로 나오게 했다.
	imagestring($im, 3, rand(0,250), rand(0,280), $ip, $tc);
}

# 만든 이미지를 PNG로 내보내 출력한다.
# imagepng(생성 이미지, 저장할 경로, 압축률, 필터);
# 경로를 지정하지 않으면 NULL, 압축률은 0~9
# 경로, 압축률, 필터는 생략해도 된다.
imagepng($im, NULL, 9);

# 출력 후 이미지를 메모리에서 지운다.
imagedestroy($im);
?>


CSS로 위에서 작성한 이미지를 불러온다.
php 파일 그대로 불어오면 된다.


<style type="text/css">
body {
	background:url("watermark.php")
}
</style>


댓글

homaki.tistory.com의 구글 광고