可以。 转载一篇,顺便问下,请问那位知道如何解决显示中文的问题?PHP图片函数运用一例
<?
Header( "Content-type: image/jpeg");function makethumb($srcFile,$text,$size=12,$R=0,$G=0,$B=0) {
if(!$text){
$text='Hello';
$size=40;
$R=255;
}
$data = GetImageSize($srcFile,&$info);
switch ($data[2]) {
case 1: //图片类型,1是GIF图
$im = @ImageCreateFromGIF($srcFile);
break;
case 2: //图片类型,2是JPG图
$im = @imagecreatefromjpeg($srcFile);
break;
case 3: //图片类型,3是PNG图
$im = @ImageCreateFromPNG($srcFile);
break;
}
$srcW=ImageSX($im);
$srcH=ImageSY($im);
$ni= imagecreatetruecolor($srcW,$srcH);
imagecopyresampled($ni,$im,0,0,0,0,$srcW,$srcH,$srcW,$srcH);
$font = "4.ttf";
$textcolor = imagecolorallocate($ni,$R,$G,$B); // Set text color
$i=0;
$txt='';
$len=ceil((12*22)/$size);
$lgg=ceil(($size*16)/12)-1;
while(strlen($txt)>0||!$i){
$start=$len*$i;
$kk=ceil($size*13/12);
//$kk=13;
$txt=substr($text, $start, $len);
$hei=$i*$lgg+$kk;
imagettftext($ni,$size, 0, 8, $hei, $textcolor, $font, $txt); // Write the text with a font
$i++;
}
ImageJpeg($ni);
}
if(!$size||$size<1)$size=12;
makethumb("test.jpg",$text,$size,$R,$G,$B);?>
演示:
http://www.ylei.com/tools/test.php?text=xxxxxx&size=20&R=255&B=0&G=0我在我自己测试,用utf8可以输出中文,但在freebsd上就不能
上面的代码我已经把utf8编码去掉了,现在只支持英文
图片: http://www.ylei.com/tools/test.jpg
字体: http://www.ylei.com/tools/4.ttf
text:显示文字
size:字体大小(默认为12)
R,G,B:字体颜色(默认为黑色)
<?
Header( "Content-type: image/jpeg");function makethumb($srcFile,$text,$size=12,$R=0,$G=0,$B=0) {
if(!$text){
$text='Hello';
$size=40;
$R=255;
}
$data = GetImageSize($srcFile,&$info);
switch ($data[2]) {
case 1: //图片类型,1是GIF图
$im = @ImageCreateFromGIF($srcFile);
break;
case 2: //图片类型,2是JPG图
$im = @imagecreatefromjpeg($srcFile);
break;
case 3: //图片类型,3是PNG图
$im = @ImageCreateFromPNG($srcFile);
break;
}
$srcW=ImageSX($im);
$srcH=ImageSY($im);
$ni= imagecreatetruecolor($srcW,$srcH);
imagecopyresampled($ni,$im,0,0,0,0,$srcW,$srcH,$srcW,$srcH);
$font = "4.ttf";
$textcolor = imagecolorallocate($ni,$R,$G,$B); // Set text color
$i=0;
$txt='';
$len=ceil((12*22)/$size);
$lgg=ceil(($size*16)/12)-1;
while(strlen($txt)>0||!$i){
$start=$len*$i;
$kk=ceil($size*13/12);
//$kk=13;
$txt=substr($text, $start, $len);
$hei=$i*$lgg+$kk;
imagettftext($ni,$size, 0, 8, $hei, $textcolor, $font, $txt); // Write the text with a font
$i++;
}
ImageJpeg($ni);
}
if(!$size||$size<1)$size=12;
makethumb("test.jpg",$text,$size,$R,$G,$B);?>
演示:
http://www.ylei.com/tools/test.php?text=xxxxxx&size=20&R=255&B=0&G=0我在我自己测试,用utf8可以输出中文,但在freebsd上就不能
上面的代码我已经把utf8编码去掉了,现在只支持英文
图片: http://www.ylei.com/tools/test.jpg
字体: http://www.ylei.com/tools/4.ttf
text:显示文字
size:字体大小(默认为12)
R,G,B:字体颜色(默认为黑色)
ttf的文件头信息可以搜索一下
处理一下就可以了
你编写ttf解释器吧
可能要编几万到十几万行代码。
我用C语言写过。
把数据读出来。
再以B样条输出。
但是填充麻烦死了。
填得不是很完美。
$line = fread($this->fh, 10000);
if (preg_match("/^TAG/", $line)) {
$this->id3 = unpack("a3tag/a30title/a30author/a30album/a4year/a30comment/C1genre_id", $line);
$this->id3["genre"] = $this->id3_genres_array[$this->id3["genre_id"]];
return(true);
} else {
$this->error = "no idv3 tag found";
return(false);
}
这是程序片断!但怎么能知道ttf的信息是不是这样保存的呢?!