文章目录

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

类似这种效果:
weixn

可以知道,图片是给定的,那么只要随机生成一个数字,然后再在图片的右上角显示出来就好了,这里可以使用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_‘“都不会成立的!

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

文章目录