python类似微信未读信息图片脚本

其实就是实现一个效果,给一张图片,然后再右上角给出未读的信息数目,就像我们打开微信的时候,总是看到红点就忍不住想要点击去查看一样。

类似这种效果:

可以知道,图片是给定的,那么只要随机生成一个数字,然后再在图片的右上角显示出来就好了,这里可以使用PIL,这样就比较方便的实现了,

代码:

from PIL import Image,ImageDraw, ImageFont

import random

origin_image = "./image/test.jpg"
new_image = "./image/new_test.jpg"
color = (255,0,0)

def  numRandom():
	return random.randint(0, 100)

def draw_text_for_image(text, origin_image,fill_color):
	try:
		image = Image.open(origin_image)
		size = image.size
		x = size[0] - 60
		font = ImageFont.truetype("arial.ttf", 36)
		draw = ImageDraw.Draw(image)
		draw.text((x, 15), text, font=font, fill=fill_color)
		image.save(new_image,'jpeg');
	except :
		print "Unable to load image"
	
if __name__ == "__main__":
		text = str(numRandom())
		draw_text_for_image(text,origin_image,color)	

先得到需要的图片和保存的图片路径,利用随机数产生一个随机数字,ImageDraw实现在图片是添加文字。

image.size获得图片的长宽,返回一个元祖。

这里说说最后一个__name__ == "__main__":

  当打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':

       模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下,,__name__ 的值将是一个特别缺省"__main__"。

在cmd 中直接运行.py文件,则__name__的值是'__main__';

而在import 一个.py文件后,__name__的值就不是'__main__'了;

从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件

如:

#Test.py

class Test:

    def __init(self):pass

    def f(self):print 'Hello, World!'

if __name__ == '__main__':

    Test().f()

#End

 

你在cmd中输入:

C:>python Test.py

Hello, World!

说明:"__name__ == '__main__'"是成立的

 

你再在cmd中输入:

C:>python

>>>import Test

>>>Test.__name__                #Test模块的__name__

'Test'

>>>__name__                       #当前程序的__name__

'__main__'

无论怎样,Test.py中的"__name__ == '__main__'"都不会成立的!

所以,下一行代码永远不会运行到

posted @ 2015-02-01 21:32  silenceer  阅读(854)  评论(0编辑  收藏  举报