对TKinter这一不一致特性感到不解,求有解决办法吗???
时间:2011-06-27
来源:互联网
Python code
#coding=gbk #执行一下就知道干什么的了 import ttk as ttk import Tkinter as Tk def doJob(): print '' for y in range(0,24): for x in range(0,24): if canv.find_overlapping(x,y,x,y): print '*', else: print '-', print '' root = Tk.Tk() canv = Tk.Canvas(root,width=24,height=24,bg='blue') canv.pack(side='left') canv.create_rectangle(4,4,20,20) #创建不同的物体,打印其轮廓 ttk.Button(root,text=u'执行生成',command=doJob).pack(side='right') root.mainloop()


Python code
#coding=gbk #执行一下就知道干什么的了 import ttk as ttk import Tkinter as Tk def doJob(): print '' for y in range(0,24): for x in range(0,24): if canv.find_overlapping(x,y,x,y): print '*', else: print '-', print '' root = Tk.Tk() canv = Tk.Canvas(root,width=24,height=24,bg='blue') canv.pack(side='left') canv.create_text((13,13),text=u'电',font=(u'宋体',14,'bold')) #创建不同的物体,打印其轮廓 ttk.Button(root,text=u'执行生成',command=doJob).pack(side='right') root.mainloop()


作者: XIANXir 发布时间: 2011-06-27
作者: XIANXir 发布时间: 2011-06-27






作者: XIANXir 发布时间: 2011-06-27
我觉得canvas现在的行为是符合人们的常识的:两个字重到一起,即使它们的笔画互不相交,我们也认为它们是重叠的。
而且,你想象一下你来实现find_overlapping函数,让它支持多边形,圆形等形状都有简单,高效的办法。对于字的笔画,很难有高效的办法来实现,对不同的字体,字号,它们的笔画形状都可能不一样。
不要再纠结这个问题了。如果还是为取字模的话,用PIL实现也很方便。
作者: panghuhu250 发布时间: 2011-06-27
作者: panghuhu250 发布时间: 2011-06-27
07年,有人想做同样的事情,没有得到回应。
难道真的是阳光之下,并无新事?
“
What I am trying to do is get the dot matrix
of chinese char, and then make a font lib for embed system.
I had thought of print the char on a tk canvas,
and get dot color one bye one, but I found no mathod to get
data form canvas.
As for image, I can put and get dots on it, but I don't
konw how to put a char on it!
So, any ideas? or should I consider using something like
gtk!
”
非常感谢您的提醒,看来Tkinter做这个真得是不行!!此路走不通啊!!!
另外,您说PIL做这个很简单。能否提供些帮助啊——指点一下方向即可。。。我没接触过PIL,而取字模又真得很急切,希望您能提供帮助,非常感谢!!!
作者: XIANXir 发布时间: 2011-06-27
07年,有人想做同样的事情,没有得到回应。
难道真的是阳光之下,并无新事?
另外,我用关键词"PIL 取字模"、“PLI 字模”分别Google了一下,没有任何相关的条目
作者: XIANXir 发布时间: 2011-06-27
Python code
#! /usr/bin/env python import ImageFont, ImageDraw, Image font = ImageFont.truetype("/usr/share/fonts/truetype/arphic/ukai.ttc", 24) def test(zi): im = Image.new('L', (24, 24), 0) draw = ImageDraw.Draw(im) draw.text((0,0), zi, font=font, fill=256) d = list(im.getdata()) l = [d[start:start+24] for start in range(0, 24*24, 24)] print "\n".join("".join(map(lambda i: (i < 50 and "*") or ' ', r)) for r in l) if __name__=='__main__': import sys test(unicode(sys.argv[1], 'utf-8'))
Python code
family@OmicsHome:~/projects/csdn$ ./zixing.py 水 ************************ ************************ ************************ ************************ *********** ************ *********** *********** *********** *********** *********** *********** *********** **** ***** *********** *** ***** *********** ** ****** ****** ** ******* *** * ******** ******** * ********* ******* ** ********* ******* ** * ******** ****** *** ** ****** ****** *** *** **** ***** **** **** ** **** ***** ***** *** ****** ****** *** ********* *********** ********* *********** ********** ***********
作者: panghuhu250 发布时间: 2011-06-27
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28