gd 테스트가 안됩니다. 정보
그누보드 gd 테스트가 안됩니다.관련링크
본문
루트님이 알려주신 링크를 보고 그대로 파일을 만들어서 올려봤습니다.
http://threes.org/webfont/wf.php 에서는 그토록 아름답게 실행되는 내용이
왜 제 계정에서는 실행이 안되는 것인가요?
gd 세팅도 체크해봤는데
array(11){
["GD Version"]=> string(27) "bundled (2.0.15 compatible)"
["FreeType Support"]=> bool(true)
["FreeType Linkage"]=> string(13) "with freetype"
["T1Lib Support"]=> bool(false)
//혹시 이것 때문일까요?
["GIF Read Support"]=> bool(true)
["GIF Create Support"]=> bool(true)
["JPG Support"]=> bool(true)
["PNG Support"]=> bool(true)
["WBMP Support"]=> bool(true)
["XBM Support"]=> bool(true)
["JIS-mapped Japanese Font Support"]=> bool(false) }
제가 보기에는 사용가능한 것 같습니다.
phpinfo 에서도
gd
GD Support enabled
GD Version bundled (2.0.15 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
이상 없는 것 같습니다.
그런데 도대체 왜 그럴까요?
웹계정 제공하는 곳에서도 지원한다고 적혀있습니다.
아래의 실행문을 가지고 애쓰고 있는데요,
<?
Header("Content-type: image/gif");
$text="1234567890 abcd ABCD";
$font = "/home/hosting_users/사용자계정/www/webfont/times.ttf";
if(!isset($s)) $s=11;
//print iconv( 'UTF-8', 'iso-8859-2//TRANSLIT', $text );
$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, 0x2c,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);
ImageGif($im,'temp.gif');
ImageDestroy($im);
Header("Content-type: text/html");
?>
<html>
<body>
<img src="temp.gif">
</body>
</html>
바꿀 곳이라고야
$font = "/home/hosting_users/사용자계정/www/webfont/times.ttf"; 를
$font = "/home/ace1/public_html/webfont/times.ttf"; 이렇게 제 계정 절대주소 적어주면 될테구요,
설정에서 gif create 된다고 나왔지만, gif read only 라는 말도 있어서 위 링크의 리플에서처럼
Header("Content-type: image/gif"); -> Header("Content-type: image/png");
ImageGif($im,'temp.gif'); -> ImagePng($im,'temp.png');
<img src="temp.gif"> -> <img src="temp.png">
이렇게 gif ->png 로 수정해서 실행해도 실행이 안됩니다.
뭐 에러구문이 뜨는 것도 아니고 그냥 엑스박스 표시뿐이고
계정을 살펴봐도 temp.gif 혹은 temp.png 는 찾아볼 수 없습니다.
참고로 gd 2.0.15 버전이네요.
제가 의심하는 것은 위의 실행문 속에
gd 1.x.x 버전의 명령어가 혹시 들어있지 않나....입니다만...
http://nhacks.com/email/index.php
이 기능을 구현하려고 하는데... 조금 어렵습니다만...
반드시 해내겠습니다. 도와주시길 부탁드립니다.
http://threes.org/webfont/wf.php 에서는 그토록 아름답게 실행되는 내용이
왜 제 계정에서는 실행이 안되는 것인가요?
gd 세팅도 체크해봤는데
array(11){
["GD Version"]=> string(27) "bundled (2.0.15 compatible)"
["FreeType Support"]=> bool(true)
["FreeType Linkage"]=> string(13) "with freetype"
["T1Lib Support"]=> bool(false)
//혹시 이것 때문일까요?
["GIF Read Support"]=> bool(true)
["GIF Create Support"]=> bool(true)
["JPG Support"]=> bool(true)
["PNG Support"]=> bool(true)
["WBMP Support"]=> bool(true)
["XBM Support"]=> bool(true)
["JIS-mapped Japanese Font Support"]=> bool(false) }
제가 보기에는 사용가능한 것 같습니다.
phpinfo 에서도
gd
GD Support enabled
GD Version bundled (2.0.15 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
이상 없는 것 같습니다.
그런데 도대체 왜 그럴까요?
웹계정 제공하는 곳에서도 지원한다고 적혀있습니다.
아래의 실행문을 가지고 애쓰고 있는데요,
<?
Header("Content-type: image/gif");
$text="1234567890 abcd ABCD";
$font = "/home/hosting_users/사용자계정/www/webfont/times.ttf";
if(!isset($s)) $s=11;
//print iconv( 'UTF-8', 'iso-8859-2//TRANSLIT', $text );
$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, 0x2c,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);
ImageGif($im,'temp.gif');
ImageDestroy($im);
Header("Content-type: text/html");
?>
<html>
<body>
<img src="temp.gif">
</body>
</html>
바꿀 곳이라고야
$font = "/home/hosting_users/사용자계정/www/webfont/times.ttf"; 를
$font = "/home/ace1/public_html/webfont/times.ttf"; 이렇게 제 계정 절대주소 적어주면 될테구요,
설정에서 gif create 된다고 나왔지만, gif read only 라는 말도 있어서 위 링크의 리플에서처럼
Header("Content-type: image/gif"); -> Header("Content-type: image/png");
ImageGif($im,'temp.gif'); -> ImagePng($im,'temp.png');
<img src="temp.gif"> -> <img src="temp.png">
이렇게 gif ->png 로 수정해서 실행해도 실행이 안됩니다.
뭐 에러구문이 뜨는 것도 아니고 그냥 엑스박스 표시뿐이고
계정을 살펴봐도 temp.gif 혹은 temp.png 는 찾아볼 수 없습니다.
참고로 gd 2.0.15 버전이네요.
제가 의심하는 것은 위의 실행문 속에
gd 1.x.x 버전의 명령어가 혹시 들어있지 않나....입니다만...
http://nhacks.com/email/index.php
이 기능을 구현하려고 하는데... 조금 어렵습니다만...
반드시 해내겠습니다. 도와주시길 부탁드립니다.
댓글 전체
자문자답입니다만, 맞는 건지 모르겠네요.
phpschool 에서 보니까 각 함수마다 필요한 라이브러리가 있고
그래서 php 컴파일시 옵션을 제대로 지정해줘야 하는 것 같네요.
ImageTTFText 함수의 경우 아래의 옵션과 함께 컴파일했어야 하는데,
--with-gd
--enable-gd-native-ttf
--with-png
--with-zlib-dir=/usr/local/lib/zlib-1.2.1
--with-ttf
--with-jpeg-dir=/usr/local/lib/jpeg-6b/
--with-freetype-dir=/usr/local/lib/freetype-2.1.9/
--with-xpm-dir=/usr/X11R6/
그런데 제 웹호스팅 계정의 php 컨피그 환경을 보면
--with-ttf
--with-xpm-dir=/usr/X11R6/ 이렇게 둘이 빠졌네요.
아마 이 것이 영향을 끼친 것 아닐런지요?
초보가 여기까지 결론 내는데 8시간이 걸렸습니다.
GD 쓰시는 분들께서 제 생각이 맞는지 알려주시면 고맙겠습니다.
그나저나... 그렇다면 웹호스팅에서는 제가 원하는 기능을 구현하지는
못할 것 같구요... 서버호스팅 이용이 하나 있는데...
php 최신버전과 gd, 그리고 gif 패치를 깔아야 겠네요.
gd 사용법 배우기도 어렵지만... 서버 세팅하기는 더 까막눈이라...
뭐... 그래도 진격합니다.
phpschool 에서 보니까 각 함수마다 필요한 라이브러리가 있고
그래서 php 컴파일시 옵션을 제대로 지정해줘야 하는 것 같네요.
ImageTTFText 함수의 경우 아래의 옵션과 함께 컴파일했어야 하는데,
--with-gd
--enable-gd-native-ttf
--with-png
--with-zlib-dir=/usr/local/lib/zlib-1.2.1
--with-ttf
--with-jpeg-dir=/usr/local/lib/jpeg-6b/
--with-freetype-dir=/usr/local/lib/freetype-2.1.9/
--with-xpm-dir=/usr/X11R6/
그런데 제 웹호스팅 계정의 php 컨피그 환경을 보면
--with-ttf
--with-xpm-dir=/usr/X11R6/ 이렇게 둘이 빠졌네요.
아마 이 것이 영향을 끼친 것 아닐런지요?
초보가 여기까지 결론 내는데 8시간이 걸렸습니다.
GD 쓰시는 분들께서 제 생각이 맞는지 알려주시면 고맙겠습니다.
그나저나... 그렇다면 웹호스팅에서는 제가 원하는 기능을 구현하지는
못할 것 같구요... 서버호스팅 이용이 하나 있는데...
php 최신버전과 gd, 그리고 gif 패치를 깔아야 겠네요.
gd 사용법 배우기도 어렵지만... 서버 세팅하기는 더 까막눈이라...
뭐... 그래도 진격합니다.