PIL库学习链接:http://blog.csdn.net/column/details/pythonpil.html?&page=1

1 #-*-coding:utf-8-*-
2 __author__ = 'Deen'
3 '''
4 题目说明:
5 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
6 '''
7 from PIL import Image
8 from PIL import ImageChops
9 from PIL import ImageDraw
10 from PIL import ImageFont
11
12 # im = Image.open('source\\0000.jpg')
13 # print im.getbands()
14 # print im.mode
15 # print im.size
16 # print im.size[0]
17 # print im.size[1]
18
19 '''
20 PIL使用笛卡尔像素坐标系统,坐标(0,0)位于左上角。注意:坐标值表示像素的角;位于坐标(0,0)处的像素的中心实际上位于(0.5,0.5)。
21
22 坐标经常用于二元组(x,y)。长方形则表示为四元组,前面是左上角坐标。例如,一个覆盖800x600的像素图像的长方形表示为(0,0,800,600)。
23 '''
24
25 # info 返回一个对象
26 # print im.info
27
28 '''
29 ImageChops模块
30
31 ImageChops模块包含一些算术图形操作,叫做channel operations(“chops”)。这些操作可用于诸多目的,比如图像特效,图像组合,算法绘图等等。通道操作只用于8位图像(比如“L”模式和“RGB”模式)。
32 '''
33
34 '''
35 ImageDraw模块
36
37 ImageDraw模块为image对象提供了基本的图形处理功能。例如,它可以创建新图像,注释或润饰已存在图像,为web应用实时产生各种图形。
38
39 ImageDraw模块的使用如下:
40
41 >>>from PIL import Image, ImageDraw
42
43 >>> im = Image.open('D:\\Code\\Python\\test\\img\\1.jpg')
44
45 >>>draw = ImageDraw.Draw(im)
46
47 >>>draw.line((0,0) + im.size, fill = 128)
48
49 >>>draw.line((0, im.size[1], im.size[0], 0), fill=128)
50
51 >>>im.show()
52
53 >>> deldraw
54
55 >>>im.show()
56 '''
57
58
59 # im2 = ImageChops.duplicate(im)
60 # print im2.size
61 # draw = ImageDraw.Draw(im2)
62 '''
63 draw.line((141, 15)+(141, 53), fill=(255, 0, 0))
64 draw.line((141, 15)+(123, 33), fill=(255, 0, 0))
65 draw.line((123, 33)+(150, 33), fill=(255, 0, 0), width=5)
66 '''
67 '''
68 ft = ImageFont.truetype("C:/windows/fonts/Arial.ttf", 20)
69 draw.text((30,30),u"4",font=ft,fill='red')
70 im2.show()
71 '''
72
73 def add_num(img):
74 draw = ImageDraw.Draw(img)
75 ft = ImageFont.truetype("C:/windows/fonts/Arial.ttf", 20)
76 draw.text((img.size[0]-40, 0), u'99+',font=ft, fill='red')
77 img.save('result.jpg', 'jpeg')
78
79 return 0
80
81 if __name__ == '__main__':
82 image= Image.open('source/0000.jpg')
83 add_num(image)

python练习册 每天一个小程序 第0000题的更多相关文章

  1. python练习册 每天一个小程序 第0013题

    # -*-coding:utf-8-*- ''' 题目描述: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-) 地址: http://tieba.baidu.com/p/21 ...

  2. python练习册 每天一个小程序 第0001题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生 ...

  3. python练习册 每天一个小程序 第0007题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但 ...

  4. python练习册 每天一个小程序 第0010题

    # -*-coding:utf-8-*- ''' 题目描述: 使用 Python 生成类似于下图中的字母验证码图片 思路: 运用PIL库加random 随机字母进行生成 ''' import rand ...

  5. python练习册 每天一个小程序 第0009题

    1 ''' 2 题目描述: 3 找出一个html文件中所有的url 4 5 思路 : 6 利用正则表达式进行匹配 7 8 ''' 9 10 11 import re 12 13 14 with ope ...

  6. python练习册 每天一个小程序 第0008题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 一个HTML文件,找出里面的正文. 6 7 思路: 8 利用Beautiful ...

  7. python练习册 每天一个小程序 第0006题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都 ...

  8. python练习册 每天一个小程序 第0005题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目说明: 你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小 ...

  9. python练习册 每天一个小程序 第0012题

    # -*-coding:utf-8-*- def test(content): text = content flag = 0 with open('filtered_words.txt') as f ...

随机推荐

  1. 动手写一个LRU缓存

    前言 LRU 是 Least Recently Used 的简写,字面意思则是最近最少使用. 通常用于缓存的淘汰策略实现,由于缓存的内存非常宝贵,所以需要根据某种规则来剔除数据保证内存不被占满. 在r ...

  2. CoaXPress 接口相机的控制方法--2

    接上一篇 <CoaXPress 接口相机的控制方法--1> https://www.cnblogs.com/xingce/p/15902246.html 这里再介绍一下具体是如何完成相机寄 ...

  3. java操作excel(通过POI)

    读取所有数据,并打印出来,表单名:testcase 定义实体类(说明:这里单纯打印读取的excel内容,未用到实体类,反射的时候才会用到实体类) package com.qzcsbj; /** * @ ...

  4. k8s虚拟机未关闭,电脑重启后,虚拟机无法启动

    莫名其妙电脑重启了,虚拟机连不上,心里真的是一万匹草泥马,显示如下: Generating "/run/initramfs/rdsosreport.txt" Entering em ...

  5. Docker 设置国内镜像源

    创建或修改 /etc/docker/daemon.json 文件,修改为如下形式    # vi /etc/docker/daemon.json    {        "registry- ...

  6. 目前数据可视化工具排名如何?好用的BI可视化软件

    数据可视化用专业术语来就是通过视觉的方式向人类展示数据,这种在文本基础上的图表即简单又实用,而且相关性.趋势分析都非常明确,也非常可靠,通过图表一目了然.用通俗的话说就是画一张图表,将数据以比例的方式 ...

  7. Linux性能优化实战CPU篇之软中断(三)

    一.软中断 1,中断的定义 a>定义 举例:你点了一份外卖,在无法获知外卖进度的情况下,配送员送外卖是不等人的,到了发现没人取会直接走,所以你只能苦苦等着,时不时去门口看送到没有,无法干别的事情 ...

  8. 【C# 基础概念】静态常量和动态常量的区别

    C# 静态常量和动态常量的区别 C#中有两种常量类型分别为readonly(运行时常量)与const(编译时常量),readonly是变量的常量,const是字面量的常量本文将就这两种类型的不同特性进 ...

  9. .net mvc项目本地调试:浏览器一直转圈无法访问

    原因: 通过 bundles.Add 方式給多个 js文件添加 匿名,再通过  @Scripts.Render 引入的时候, js 里面使用了 const 来定义变量,就会导致访问pending,具体 ...

  10. 【C#操作Excel】同名Excel放入同一文件夹中,然后合并为同一个Excel文件

    近期有对Excel操作的需求,由于都是重复劳动,故分享代码如下,本人也是技术菜鸟没有考虑性能,如果有大牛能够指教就再好不过了 事先电脑中需要安装Excel,然后Vs中引用Microsoft.Offic ...