经过多天摸索,原因终于找到了,解决方法也有了,但是新问题又出现我在北大中文论坛里面看了下相关资料,有个font creater program 4.1中文绿色版的字体编辑软件可以更改字体字模的映射表,分别对比了一下方正与文鼎的字体文件,发现方正的字模都是映射到microsoft unicode,文鼎的却映射到microsoft big5上面,大概是因为big5与unicode在内码编码上面不一致,而magickwand又只认utf-8,所以导致magickwand在文鼎字体中按unicode的编码去找字模,这样当然找不到,只能显示成问号,我尝试着修改文鼎字体其中几个字模的映射(很麻烦,要先找出这个汉字对应的unicode内码,删掉与big5的映射,新建一个与unicode的映射输入unicode内码,汉字有千万个全改要死人的!!!),再运行PHP时显示正常了!!!!看来原因是找到了,解决办法有二: 1.一个个修改字模的映射表,这种做法不现实,光改一种字体就够受了,如有批量的省事做法请不吝告诉我一下 2.从magickwand下手,在图片上输出中文的时候,先在字库里面找与unicode映射的字模,如果找不到继续找与big5映射的字模,或者在找这前先判断是与哪种编码映射的,再以相应的编码去查找,但是这需要涉汲到修改magickwand的API,难度对我来说好比登天,如有高手愿意能在您百忙之中抽空帮我一把,我将太感激了!!!!我的联系方式:no8chat at yahoo.com.cn
但是,在生成文字的时候肯定有一个可以指定字体的接口,自己找找看。
路径都没有错误
DrawSetFont(DrawingWand handle,'方正字体文件路径') 效果正常
DrawSetFont(DrawingWand handle,'文鼎字体文件路径') 中文变成问号
1.一个个修改字模的映射表,这种做法不现实,光改一种字体就够受了,如有批量的省事做法请不吝告诉我一下
2.从magickwand下手,在图片上输出中文的时候,先在字库里面找与unicode映射的字模,如果找不到继续找与big5映射的字模,或者在找这前先判断是与哪种编码映射的,再以相应的编码去查找,但是这需要涉汲到修改magickwand的API,难度对我来说好比登天,如有高手愿意能在您百忙之中抽空帮我一把,我将太感激了!!!!我的联系方式:no8chat at yahoo.com.cn
我想GD库作图对中文支持不好,差不多也是这原因吧,差别只是在magickwand找不到显示问号,而GD库则给出了英文提示(具体什么提示忘了,大概意思就是找不到字符映射)
用fontforge可以把一个TTF字体的内码转成utf-8在magickwand里面TTF可以正常工作了结贴吧唉