단순 텍스트를 이미지로 만드는 방법입니다
<img src="<?=gd_label("가나다 abc 123","font-size:30px;color:#ff0000;")?>">
이미지 태그안에 gd_label("내용","CSS") 함수를 넣고
첫번째 파라미터에 내용
두번째 파라미터에 CSS를 넣어 사용하면 됩니다
작동이 되지 않는경우 폰트가 적용되지 않을수도 있으니 폰트도 같이 업로드해서 사용해야 합니다
gd_label.php 파일
header("Content-Type: text/html; charset=utf-8");
$title=base64_decode($title);
if(!$title)$title="";
$fsize=18;//기본글자사이즈
//기본색상은 녹색
$color01=0xdd;//글자색상
$color02=0xdd;//글자색상
$color03=0xdd;//글자색상
$ttf = "./lib/font/NANUMBARUNPENB_0.TTF";//글자폰트
$padding=3;//기본 padding값
$padding_left=3;
//스타일을 가지고 적용하기
$style=base64_decode($style);
$STYLE1=@explode(";",$style);
for($i=0;$i<count($STYLE1);$i++){
$STYLE2=@explode(":",$STYLE1[$i]);
if(strtolower($STYLE2[0])=="font-size"){//글자크기
$fsize=$STYLE2[1];
}
if(strtolower($STYLE2[0])=="color"){//색상
$STYLE2[1]=str_replace("#","",$STYLE2[1]);
$color01=hexdec(substr($STYLE2[1],0,2));
$color02=hexdec(substr($STYLE2[1],2,2));
$color03=hexdec(substr($STYLE2[1],4,2));
}
if(strtolower($STYLE2[0])=="padding"){//padding
$padding = $STYLE2[1];
}
}
$size = imagettfbbox($fsize, 0, $ttf, $title);
$xsize = abs($size[0]) + abs($size[2])+($padding*2)+($padding_left*2)-11;
$ysize = abs($size[5]) + abs($size[1])+($padding*2);
$image = @imagecreatetruecolor($xsize, $ysize);
imagesavealpha($image, true);
$trans_colour = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $trans_colour);
$fcolor = imagecolorallocate ($image, $color01, $color02, $color03);
if($url){
imagecopy($image, $left, 0, 0, 0, 0, $leftSize[0], $leftSize[1]);//좌측
}
imagettftext($image, $fsize, 0, $padding+$leftSize[0]+$padding_left-6, $fsize+$padding, $fcolor, $ttf, $title);//텍스트를 넣는부분
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
실재사용되는 페이지 함수포함
<?
//텍스트를 이미지로 변경
function gd_label($text,$css=""){
$return="/lecture/gd_label.php?title=".base64_encode($text)."&style=".(base64_encode($css))."";
return $return;
}
?>
<img src="<?=gd_label("가나다 abc 123","font-size:30px;color:#ff0000;")?>">