使用imagettfbbox取得字体范围,使用imagettftext绘出字符串,测试了几个字体,都可以正常得出结果。
后测试了webdings与wingdings字体,发现无法正常取得这2种字体的范围与绘出正确的符号。
搜索了很久,也尝试更换成了gbk、gb2312编码尝试,但都无法正常测绘。
17 个解决方案
#1
仿此完成
for($i=32;$i<128;$i++) {
printf("<font face='webdings' size='20'>%c</font>", $i);
}
#2
主要需要在php中得出一段符号的宽高,前端不是用html。
#3
把每一个字都生成图片,然后记录其宽高,放入数据库,下次使用。
#4
#5
gd库无法正常绘出这2个字体,怎么取得宽高呢?
#6
终于弄出来了
$fnt = 'c:/windows/fonts/webdings.ttf';
//$fnt = 'c:/windows/fonts/wingding.ttf';
//$fnt = 'c:/windows/fonts/wingdng2.ttf';
//$fnt = 'c:/windows/fonts/wingdng3.ttf';
$im = imagecreatetruecolor(500, 250);
imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 200));
$c = imagecolorallocate($im, 0, 0, 0);
$n = 32;
$k = 30;
for($y=0; $y<8; $y++) {
for($x=0; $x<16; $x++) {
$s = chr(0xf0) . chr($n++);
$s = iconv('ucs-2', 'utf-8', $s);
imagettftext($im, 20, 0, $x * $k, $y * $k + $k, $c, $fnt, $s);
}
}
#7
#8
666666666666
#9
#10
#11
learning~
#12
learning~
#13
#14
#15
楼主可以结帖了,答案已给出。
#16
#17
楼主v5
#1
仿此完成
for($i=32;$i<128;$i++) {
printf("<font face='webdings' size='20'>%c</font>", $i);
}
#2
主要需要在php中得出一段符号的宽高,前端不是用html。
#3
把每一个字都生成图片,然后记录其宽高,放入数据库,下次使用。
#4
#5
gd库无法正常绘出这2个字体,怎么取得宽高呢?
#6
终于弄出来了
$fnt = 'c:/windows/fonts/webdings.ttf';
//$fnt = 'c:/windows/fonts/wingding.ttf';
//$fnt = 'c:/windows/fonts/wingdng2.ttf';
//$fnt = 'c:/windows/fonts/wingdng3.ttf';
$im = imagecreatetruecolor(500, 250);
imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 200));
$c = imagecolorallocate($im, 0, 0, 0);
$n = 32;
$k = 30;
for($y=0; $y<8; $y++) {
for($x=0; $x<16; $x++) {
$s = chr(0xf0) . chr($n++);
$s = iconv('ucs-2', 'utf-8', $s);
imagettftext($im, 20, 0, $x * $k, $y * $k + $k, $c, $fnt, $s);
}
}
#7
#8
666666666666
#9
#10
#11
learning~
#12
learning~
#13
#14
#15
楼主可以结帖了,答案已给出。
#16
#17
楼主v5