php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

时间:2022-08-25 12:53:30
编码:utf-8

使用imagettfbbox取得字体范围,使用imagettftext绘出字符串,测试了几个字体,都可以正常得出结果。
后测试了webdings与wingdings字体,发现无法正常取得这2种字体的范围与绘出正确的符号。

php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

搜索了很久,也尝试更换成了gbk、gb2312编码尝试,但都无法正常测绘。

17 个解决方案

#1


仿此完成
for($i=32;$i<128;$i++) {
  printf("<font face='webdings' size='20'>%c</font>", $i);
}

#2


引用 1 楼 xuzuning 的回复:
仿此完成
for($i=32;$i<128;$i++) {
  printf("<font face='webdings' size='20'>%c</font>", $i);
}


主要需要在php中得出一段符号的宽高,前端不是用html。

#3


把每一个字都生成图片,然后记录其宽高,放入数据库,下次使用。

#4


该回复于2017-01-10 08:58:16被管理员删除

#5


引用 3 楼 fdipzone 的回复:
把每一个字都生成图片,然后记录其宽高,放入数据库,下次使用。


gd库无法正常绘出这2个字体,怎么取得宽高呢?
php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#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);
  }
}
php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#7


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#8


666666666666

#9


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#10


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#11


learning~

#12


learning~

#13


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#14


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#15


楼主可以结帖了,答案已给出。

#16


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#17


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?楼主v5

#1


仿此完成
for($i=32;$i<128;$i++) {
  printf("<font face='webdings' size='20'>%c</font>", $i);
}

#2


引用 1 楼 xuzuning 的回复:
仿此完成
for($i=32;$i<128;$i++) {
  printf("<font face='webdings' size='20'>%c</font>", $i);
}


主要需要在php中得出一段符号的宽高,前端不是用html。

#3


把每一个字都生成图片,然后记录其宽高,放入数据库,下次使用。

#4


该回复于2017-01-10 08:58:16被管理员删除

#5


引用 3 楼 fdipzone 的回复:
把每一个字都生成图片,然后记录其宽高,放入数据库,下次使用。


gd库无法正常绘出这2个字体,怎么取得宽高呢?
php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#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);
  }
}
php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#7


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#8


666666666666

#9


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#10


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#11


learning~

#12


learning~

#13


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#14


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#15


楼主可以结帖了,答案已给出。

#16


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?

#17


php gd库怎么使用webdings或wingdings字体绘出符号并取得范围呢?楼主v5