텍스트 워터마크 찍는법좀 가르처주세요..ㅜ..ㅜ
본문
자료실에 보니 타쿠야님이 텍스트 워터마크 넣는법이 있는대
적용을 하니 워터마크가 하나만 나옵니다.
사진전부에 원터마크 반복해서 나왔으며 좋겠는대 아무리 해도 안돼내요..
소스
<?
/******************************************************************************
Program: watermark-text.php
Copyright (c) 2008 sonosini All rights reserved.
Do not remove this notice
- 사용법 -
<img src='maketext.php?photo=1.jpg'>
******************************************************************************/
$font_size_auto = true; //$font_size_auto = true; 일경우라도 $font_size='';가 공란일경우만 적용
$font_size =''; // $font_size = 10;과같이 숫자 있을경우에는 $font_size_auto = true; 는 무시됨
$color = '#ffffff'; //텍스트로고 색깔
$drop_shadow = true; //텍스트로고에 그림자 효과
$shadow_color = '#606060'; //$drop_shadow = true; 일경우만 적용
$angle=0; //양수증가는 위쪽 세로글씨,음수일경우 아래쪽 세로글씨
$quality=150; //출력된 이미지의 해상도 낮을수록 선명치 못함
$font = 'arial.ttf'; //폰트 선택
$transparency =30; //증가할수록 불투명해짐
$logo_location = 'top_l'; //top_l,top_r,center,bottom_l,bottom_r
$offset_x=0; //$logo_location기준으로 양수는 좌로 이동,음수는 우로 이동
$offset_y=10; //$logo_location기준으로 양수는 위로 이동,음수는 아래로 이동
$SourceImage = $_GET['photo'];
$WaterMarkText = 'www.ilovenakama.com';
//--------------------------------------------------------------------------------------
$img_name=explode('/',$SourceImage);
$img_name_right = sizeof($img_name) - 1;
$img_name=explode('.',$img_name[$img_name_right]);
//$WaterMarkedImage =$img_name[0].'_marked.'.$img_name[1];//$this_skin.'/watermark_temp/'.$img_name[0].'_marked.'.$img_name[1];
list($width, $height) = getimagesize($SourceImage);
$image_ct = imagecreatetruecolor($width, $height);
if($img_name[1] == "gif") $image = imagecreatefromgif($SourceImage);
if($img_name[1] == "jpg" or $img_name[1] == "jpeg") $image = imagecreatefromjpeg($SourceImage);
if($img_name[1] == "png") $image = imagecreatefrompng($SourceImage);
if (!$image) die();
imagecopyresampled($image_ct, $image, 0, 0, 0, 0, $width, $height, $width, $height);
$color = sscanf($color, '#%2x%2x%2x');
$color_r = $color[0];
$color_g = $color[1];
$color_b = $color[2];
if ($font_size_auto) {
if ($font_size == ''){
if ($width <= '150px') $font_size = 0;
elseif ($width <= '250px') $font_size = 9;
elseif ($width <= '450px') $font_size = 10;
elseif ($width <= '550px') $font_size = 11;
elseif ($width <= '650px') $font_size = 12;
elseif ($width <= '750px') $font_size = 14;
elseif ($width <= '850px') $font_size = 15;
elseif ($width <= '980px') $font_size = 16;
else $font_size = 17;
}
}
$WaterMarkText= iconv("EUC-KR","UTF-8" ,$WaterMarkText);
$ttfsize = imagettfbbox($font_size, $angle, $font, $WaterMarkText);
$ttfx = $offset_x + max($ttfsize[0],$ttfsize[2],$ttfsize[4],$ttfsize[6]);
$ttfy = $offset_y + max($ttfsize[1],$ttfsize[3],$ttfsize[5],$ttfsize[7]);
if ($logo_location == 'top_l') {$x=4; $y=$ttfy + 11; $s_x=5; $s_y=$ttfy + 12;}
if ($logo_location == 'top_r') {$x=$width - $ttfx - 4; $y=$ttfy + 11; $s_x=$width - $ttfx - 5; $s_y=$ttfy + 12;}
if ($logo_location == 'center') {$x=($width - $ttfx - 2)/2; $y=($height - $ttfy - 2)/2; $s_x=($width - $ttfx - 3)/2; $s_y=($height - $ttfy - 3)/2;}
if ($logo_location == 'bottom_l') {$x= 2; $y=$height - $ttfy - 2; $s_x= 3; $s_y=$height - $ttfy - 3;}
if ($logo_location == 'bottom_r') {$x=$width - $ttfx - 2; $y=$height - $ttfy - 2; $s_x=$width - $ttfx -3; $s_y=$height - $ttfy - 3;}
if ($drop_shadow) {
$scolor = sscanf($shadow_color, '#%2x%2x%2x');
$scolor_r = $scolor[0];
$scolor_g = $scolor[1];
$scolor_b = $scolor[2];
$color = imagecolorallocatealpha($image_ct, $scolor_r, $scolor_g, $scolor_b, $transparency);
imagettftext($image_ct, $font_size,$angle,$x,$y, $color, $font, $WaterMarkText);
}
$color = imagecolorallocatealpha($image_ct, $color_r, $color_g, $color_b, $transparency);
imagettftext($image_ct, $font_size,$angle,$s_x,$s_y, $color, $font, $WaterMarkText);
if($img_name[1] == "gif") header("Content-Type: image/gif");
if($img_name[1] == "jpg" or $img_name[1] == "jpeg") header("Content-Type: image/jpeg");
if($img_name[1] == "png") header("Content-Type: image/png");
imagejpeg ($image_ct, null, $quality);
imagedestroy($image);
imagedestroy($image_ct);
?>