博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20170511 Python练习册0000 将头像右上角加上红色的数字
阅读量:4958 次
发布时间:2019-06-12

本文共 4048 字,大约阅读时间需要 13 分钟。

现在开始每天做一个Python小练习,第一个练习

#!/usr/bin/env python #-*- coding:utf8 -*- from PIL import Image, ImageDraw, ImageFont def add_num(img):     draw = ImageDraw.Draw(img)#创建一个可用来对img进行操作的对象,即创建绘画对象     myfont = ImageFont.truetype('C:/windows/fonts/Arial.ttf', size=40)#加载一个TrueType的字体文件,并且创建一个字体对象     fillcolor = "#ff0000" #填充颜色>>>红色     width, height = img.size #获取图片的长和宽     draw.text((width-40, 0),'99', font=myfont, fill=fillcolor) #drawObject.text(position,string,options)在图像内添加文字 #Position是一个二元元组,指定字符串左上角坐标,string是要写入的字符串 #options选项可以为fill或者font(只能选择其中之一作为第三参量,不能两个同同时存在,其中fill指定字的颜色, # font指定字体与字的尺寸,font必须为ImageFont中指定的font类型,具体用法见ImageFont.Truetype()     img.save('result.jpg','jpeg')#保存图片,并改变格式     return 0 if __name__ == '__main__':     image = Image.open('D:\image.jpg')#打开文件     add_num(image)#调用函数 需要用到的知识有:转载自:http://www.cnblogs.com/denny402/p/5096001.html

一、图片的打开与显示

from PIL import Imageimg=Image.open('d:/dog.png')img.show()

虽然使用的是Pillow,但它是由PIL fork而来,因此还是要从PIL中进行import. 使用open()函数来打开图片,使用show()函数来显示图片。

这种图片显示方式是调用操作系统自带的图片浏览器来打开图片,有些时候这种方式不太方便,因此我们也可以使用另上一种方式,让程序来绘制图片。

from PIL import Imageimport matplotlib.pyplot as pltimg=Image.open('d:/dog.png')plt.figure("dog")plt.imshow(img)plt.show()
这种方法虽然复杂了些,但推荐使用这种方法,它使用一个matplotlib的库来绘制图片进行显示。

figure默认是带axis的,如果没有需要,我们可以关掉

plt.axis('off')

打开图片后,可以使用一些属性来查看图片信息,如

print img.size  #图片的尺寸print img.mode  #图片的模式print img.format  #图片的格式

显示结果为:

(558, 450)RGBAPNG

二、图片的保存

img.save('d:/dog.jpg')

就一行代码,非常简单。这行代码不仅能保存图片,还是转换格式,如本例中,就由原来的png图片保存为了jpg图片。

转载自:http://www.2cto.com/kf/201603/491448.html

一、ImageFont模块的函数

1、 Load

定义:ImageFont.load(file)? Font instance

含义:从指定的文件中加载一种字体,该函数返回对应的字体对象。如果该函数失败,将产生IOError异常。

2、 Load_path

定义:ImageFont.load_path(file)? Font instance

含义:和函数load()一样,但是如果没有指定当前路径的话,会从sys.path开始查找指定的字体文件。

3、 Truetype

定义1:ImageFont.truetype(file,size) ? Font instance

含义1:加载一个TrueType或者OpenType字体文件,并且创建一个字体对象。这个函数从指定的文件加载了一个字体对象,并且为指定大小的字体创建了字体对象。

在windows中,如果指定的文件不存在,加载器会顺便看看windows的字体目录下是否存在。

这个函数需要_imagingft服务。

定义2:ImageFont.truetype(file,size, encoding=value) ? Font instance

含义2:(New in 1.1.5)加载一个TrueType或者OpenType字体文件,并且使用指定的编码方式创建一个字体对象。通常的编码方式有“unic”(Unicode),“symb”(Microsoft Symbol),“ADOB”(Adobe Standard),“ADBE”(Adobe Expert)和“armn”(Apple Roman)。

下面的例子使用MicrosoftSymbol字体,即变量encoding为“symb”,在oxF000和0xF0FF之间绘制一个字符。

1
2
font = ImageFont.truetype(
"symbol.ttf"
,
16
, encoding=
"symb"
)
draw.text((
0
,
0
), unichr(
0xF000
+
0xAA
))

4、 Load_default

定义:ImageFont.load_default()? Font instance

含义:(New in 1.1.4)加载一个默认的字体。

二、ImageFont模块的方法

Font对象必须实现下面的方法,供ImageDraw层使用。

1、 Getsize

定义:font.getsize(text)? (width, height)

含义:返回给定文本的宽度和高度,返回值为2元组。

2、 Getmask

定义:font.getmask(text,mode=”“) ? Image object

含义:为给定的文本返回一个位图。这个位图是PIL内部存储内存的实例(为Image.core接口模块定义)。

如果字体使用了抗锯齿,位图的模式为“L”,且其最大值为255。否则,它的模式为“1”。

(New in 1.1.5)可选参数mode用于一些显卡驱动指定自己喜欢的模式;如果为空,渲染器可能会返回任意模式。注意:该模式总是一个字符串。

三、ImageFont模块的实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> from PIL
import
Image, ImageDraw, ImageFont
>>> im02 = Image.open(
"D:\\Code\\Python\\test\\img\\test02.jpg"
)
>>> draw = ImageDraw.Draw(im02)
>>> ft = ImageFont.truetype(
"C:\\WINDOWS\\Fonts\\SIMYOU.TTF"
,
20
)
>>> draw.text((
30
,
30
), u
"Python图像处理库PIL从入门到精通"
,font = ft, fill =
'red'
)
>>> ft = ImageFont.truetype(
"C:\\WINDOWS\\Fonts\\SIMYOU.TTF"
,
40
)
>>> draw.text((
30
,
100
), u
"Python图像处理库PIL从入门到精通"
,font = ft, fill =
'green'
)
>>> ft = ImageFont.truetype(
"C:\\WINDOWS\\Fonts\\SIMYOU.TTF"
,
60
)
>>> draw.text((
30
,
200
), u
"Python图像处理库PIL从入门到精通"
,font = ft, fill =
'blue'
)
>>> ft = ImageFont.truetype(
"C:\\WINDOWS\\Fonts\\SIMLI.TTF"
,
40
)
>>> draw.text((
30
,
300
), u
"Python图像处理库PIL从入门到精通"
,font = ft, fill =
'red'
)
>>> ft = ImageFont.truetype(
"C:\\WINDOWS\\Fonts\\STXINGKA.TTF"
,
40
)
>>> draw.text((
30
,
400
), u
"Python图像处理库PIL从入门到精通"
,font = ft, fill =
'yellow'
)
>>> im02.show()

在windows系统下,字体文件位于C:\Windows\Fonts文件夹下。本实例中用到的SIMYOU.TTF为幼圆字体文件,SIMLI.TTF为隶书字体文件,STXINGKA.TTF为行楷字体文件。用户可以根据自己的需要,从Fonts文件夹下选择所需字体文件。

字体的大小,可以根据定义字体时的第二个参数来设定。

本实例中图像im02如下图所示:

 

 

转载于:https://www.cnblogs.com/Jiang190/p/6843125.html

你可能感兴趣的文章
sessionStorage的使用
查看>>
C#中 Request, Request.params , Request.querystring , Request.Form 区别 与联系用法?
查看>>
python---深浅拷贝
查看>>
Tbox在整车CAN网络的位置与作用
查看>>
hive基本操作与应用
查看>>
#032 有空就看PTA
查看>>
poj2752 Seek the Name, Seek the Fame 2012-1-11
查看>>
unity3d 制作打飞机小游戏
查看>>
BZOJ 1609 [Usaco2008 Feb]Eating Together麻烦的聚餐
查看>>
Android-----ViewPager的PageTransformer
查看>>
Queue 队列 写日志简单应用
查看>>
Linux系统安装Mysql5.7
查看>>
统计学习方法总结
查看>>
阿里P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程
查看>>
软件测试 homework1
查看>>
多线程知识汇总
查看>>
python 设置开机启动脚本
查看>>
20162311 队列课下作业
查看>>
APP的魔法:三个杭州小伙做手游吸金千万
查看>>
树链剖分来一发
查看>>