python模块学习第 0000 题

将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果:

好可爱>%<!

题目来源:https://github.com/Yixiaohan/show-me-the-code,感谢@史江歌以及其他人,让我找到了一个系统的学习python模块的好地方。

看到这个题目的第一印象是——额,难不成让我找qq的API,然后在手机APP的壁纸上提示QQ消息?好吧,我承认自己想复杂了,所以第二个想法就来了。因为博主最近学习比较杂乱无章,所以学习了tkinter以及opencv模块,后来发现大多数人使用PIL模块处理图像,好吧,由于上次图像指纹的识别用到了PIL模块以及Pillow模块,那么就使用三种方法把图片处理一下吧,代码如下:

 1 # coding=utf-8
 2 """
 3 使用tkinter
 4 """
 5 __author__ = ‘wing1995‘
 6 from tkinter import *
 7
 8
 9 def tk_image():
10     root = Tk()
11
12     w = Canvas(root, width=500, height=500)
13     w.pack()
14
15     photo = PhotoImage(file="C:/Users/wing1995/Desktop/classic.gif")
16     w.create_image(0, 0, anchor=NW, image=photo)
17     w.create_text(480, 60, text="9", fill="red", font=(‘Times‘, 40))
18
19     mainloop()
20
21 if __name__ == "__main__":
22     tk_image()

使用tkinter模块的好处是,方便,但是由于没有学到如何将制作的窗口中的画布保存为图片的形式,所以只能直接把窗口截图给大家看啦:

第二张方法代码:

 1 # coding=utf-8
 2 __author__ = ‘wing1995‘
 3 """
 4 使用OpenCV
 5 """
 6 import cv2
 7
 8 img = cv2.imread(‘classic.jpg‘)
 9
10 font = cv2.FONT_HERSHEY_SIMPLEX
11 cv2.putText(img, ‘9‘, (450, 100), font, 4, (0, 0, 255), 4)
12
13 cv2.imshow(‘OpenCV‘, img)
14
15 cv2.waitKey(0)
16 cv2.destroyAllWindows()

同样简单明白,I love python!结果如下:

估计是我的网速问题,弄得几张图都碎掉了,以后有空研究一下这个问题,或许是像素的丢失,导致图片的不完整,也就破图了,不管怎样还是觉得第一张图片好看点,ok,上第三类方法代码:

 1 # coding=utf-8
 2 __author__ = ‘wing1995‘
 3 """
 4 使用PIL
 5 """
 6 from PIL import Image, ImageDraw, ImageFont
 7
 8 sourceFilename = "classic.jpg"
 9 avatar = Image.open(sourceFilename)  # 打开图片文件
10 drawAvatar = ImageDraw.Draw(avatar)  # 创建画刷,用来将数字写在图片上
11
12 myFont = ImageFont.truetype("C:/Windows/Fonts/simsunb.ttf", 60)  # 使用特定字体写字
13
14 drawAvatar.text([450, 60], text="9", fill=(255, 0, 0), font=myFont)
15
16 avatar.show()
17 avatar.save(‘classic_pil.jpg‘)

这一次,学会保存图片,话说opencv中保存图片也很简单的不,只不过脑袋一时短路,忘记了,上图片:

不得不说,虽然PIL模块没怎么学习,但是上手仍然很简单,而且很详细,比如字体的设置,估计其他模块也有这样的功能,只是自己没发现而已,ok了,那么第一个练习题就这样了,有些代码明显需要改进,比如标志“9”的坐标应该放在同一个地方,便于比较之类的,大小也应该相同,代码能够函数化就好了,毕竟python处处是对象。明天继续第二个,以及coursera的语法温习,晚上玩一玩微博数据API吧。

额,话说,我扔下机房几个电脑的软件按照不管,自己自娱自乐,是不是有点偷懒?好饿,去上课了。

时间: 2024-10-21 18:28:23

python模块学习第 0000 题的相关文章

python模块学习(2)——re模块

正则表达式并不是python的一部分,正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分.如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了. 下图展示了使用正则表达式进行匹配的流程:  正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符

Python 模块学习

模块学习: http://wsyht90.blog.51cto.com/9014030/1845737 1.getpass 2.os 3.sys 4.subprocess 5.hashlib 6.json 7.pickle 8.shutil 9.time 10.datetime 11.re 12.random 13.configparser 14.traceback 15.yaml 16.itertools 17.logging 18.urllib.urllib2 19.paramiko ###

Python模块学习

python模块-time python模块-datetime

python模块学习之数据结构--collections.counter

python包含非常多的标准数据结构,如list,tuple,dict 和set 都是内置类型.除了这些基本的内置类型.python的collections模块还很多种数据结构实现. collections----容器数据类型模块 python版本:2.6以及以后版本 collections模块包含除内置內型list,dict 和tuple之外的数据类型. 1.1 Counter 1.1.1 Counter作为一个容器(啥是容器呢,能装入不同的对象就是容器),可以跟踪相同数据的次数. 初始化输入

Python模块学习笔记— —random

Python中的random模块用于生成随机数. random.random 函数原型 random.random() 生成一个范围在[0,1)的随机浮点数. import random print random.random() random.uniform 函数原型 random.uniform(a,b) 生成一个指定范围内的随机浮点数,两个参数一个是上限,一个是下限.如果a > b,则生成的随机数范围在[b,a].否则, 范围在[a,b]. import random print rand

【Python模块学习】sys模块

sys模块的操作如下: 1 sys.argv # 实现从程序外部向程序传递参数. 2 sys.exit([arg]) # 程序中间的退出,arg=0为正常退出. 3 sys.getdefaultencoding() # 获取系统当前编码,一般默认为ascii. 4 sys.setdefaultencoding() # 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时

【Python模块学习】os模块

OS模块的操作如下: 1 os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 2 os.chdir("dirname") #改变当前脚本工作目录:相当于shell下cd 3 os.curdir #返回当前目录: ('.') 4 os.pardir #获取当前目录的父目录字符串名:('..') 5 os.makedirs('dirname1/dirname2') #可生成多层递归目录 6 os.removedirs('dirname1') # 若目录为空,则

Python 模块学习:os模块

Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台.如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'. 2.os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径. 3.os.listdir() 返回指定目录下的所有文件和目录名. >>>os.listdir(os.getcwd()) ['Dj

python模块学习:os模块

一.os模块概述 Python os模块包含普遍的操作系统功能.例如文件的复制.创建文件及文件夹... 二.常用方法 1.os.listdir()   返回指定目录下的所有文件和目录名. 2.os.remove()  删除一个文件. 3.os.system()  运行shell命令. 4.os.path.split()   函数返回一个路径的目录名和文件名 5.os.path.isfile()和os.path.isdir()   函数分别检验给出的路径是一个文件还是目录,返回值分别为Ture或F