본문 바로가기
프로그램.코딩

php 로 동적이미지 생성하기(gd이용)

by landzz 2014. 1. 17.

php로 메뉴명등을 이미지로 동적으로 생성할수 있음.

자주 바뀌거나  하는 메뉴명등 생성할때 유용함.



1. https://github.com/kijin/imgtext : 아주강력함, 캐싱됨

2. 간단한버전 -> 바로 화면에 뿌려줌(아래소스 . 폰트파일필요)


=====================================================

imgtext 라이브러리.


include_once "imgtext.php";


$imgtext = new IMGText;

$imgtext->cache_url_prefix = './img/cache';

$imgtext->cache_local_dir = dirname(__FILE__)."/img/cache";

$imgtext->font_dir = dirname(__FILE__).'/css';

$imgtext->font_name = 'Daum_Regular';

$imgtext->font_size = 12;

$imgtext->color = '#404040';


$imgtext->shadow = false;

$imgtext->shadow_offset = array(2, 1);      // Horizontal, vertical.

$imgtext->shadow_opacity = 64;              // 0 = Opaque, 127 = Transparent.

$imgtext->shadow_color = '#a0a0a0';

//$imgtext->shadow_blur = 2;

$imgtext->padding = array(0, 0, 0, 0);      // CSS-style: top-right-bottom-left.


$_title_image =  $imgtext->get_html("생성할텍스트");



====================================================

간단한 버전. (GET 변수를 이용함)

<?

Header("Content-type: image/png");

//이미지가 출력될 공간을 설정합니다.

//$text = iconv("EUC-KR","UTF-8",$_REQUEST["text"]);

$text = $_GET['text'];

if(trim($text) == ""){

$text = $_SERVER['PHP_SELF']."?text=이미지로만들 글자입력";

}

$s=15;

$_font = "./_data/malgun.ttf";

$size = imagettfbbox($s,0,$_font,$text);

$dx = abs($size[2]-$size[0]);

$dy = abs($size[5]-$size[3]);

$xpad=9;

$ypad=9;

$im = imagecreate($dx+$xpad,$dy+$ypad);

//이미지가 출력될 공간의 색을 설정합니다.

$blue = ImageColorAllocate($im, 0x2d,0x6D,0xAF);

$black = ImageColorAllocate($im, 0,0,0);

$white = ImageColorAllocate($im, 255,255,255);

//배경에 그림자 효과를 줍니다.

ImageRectangle($im,0,0,$dx+$xpad-1,$dy+$ypad-1,$black);

ImageRectangle($im,0,0,$dx+$xpad,$dy+$ypad,$white);

//문자열에 그림자 효과를 줍니다.

ImageTTFText($im, $s, 0, (int)($xpad/2)+1, $dy+(int)

($ypad/2), $black, $_font, $text);

ImageTTFText($im, $s, 0, (int)($xpad/2), $dy+(int)

($ypad/2)-1, $white, $_font, $text);

//이미지를 출력하고 메모리에서 제거합니다.

ImagePng($im);

ImageDestroy($im);

?>


댓글