Python3.6 20个入门级小程序(一)
来源:互联网 发布:sql注入点判断 编辑:程序博客网 时间:2024/06/05 13:22
Python3.6 20个入门级小程序(一)
将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。
二、实现思路:
需要使用图像处理类库,而且应具备绘图功能、应用字体功能、颜色功能等,Python第三方库中有这样功能的库——PIL:Python Imaging Library,Python平台上的图像处理库。PIL功能强大,而且API简单易用。但是PIL仅支持到Python 2.7,有人在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。
三、安装PIL第三方库:
pip install pillow四、具体实现如下:
-*- coding: utf-8 -*-
# 引入Pillow3.6测试正常,给头像加数字from PIL import Image, ImageDraw, ImageFont, ImageColordef add_num(img): # 创建一个Draw对象 draw = ImageDraw.Draw(img) # 创建一个 Font myfont = ImageFont.truetype('C:/windows/fonts/Arial.ttf', size=40) fillcolor = ImageColor.getrgb('red')
#图像对象的尺寸返回宽高的元组后复制变量 width, height = img.size
draw.text((width-30, 0), '+1', font=myfont, fill=fillcolor) img.save('touxiang+1.jpg', 'jpeg') return 0if __name__ == '__main__': image = Image.open('touxiang.jpg') add_num(image)
五、程序中涉及模块的函数与方法详解:
1、Image模块介绍:该Image模块提供了一个与用于表示PIL图像相同名称的类。该模块还提供了许多功能,包括从文件加载图像和创建新图像的功能。
(1)打开图片的方法,格式为:Image.open(fp,mode ='r' )
参数:fp—需要打开的文件名,注意路径
mode —可选参数,如果有值必须是r
返回:图像对象
例子:image = Image.open('touxiang.jpg')
(2)将此图像保存在给定的文件名,格式为:Image.save(fp, format=None, **params)
参数:fp - 文件名(string)。
format - 可选格式覆盖。如果省略,则使用的格式由文件扩展名确定。如果使用文件对象而不是文件名,则应始终使用此参数。options - 图像编写器的额外参数。
返回:无
例子:img.save('touxiang+1.jpg', 'jpeg')
2、ImageDraw模块介绍:该ImageDraw模块提供简单的2D图形 。可以使用此模块创建新图像,处理或修改现有图像,并在运行时生成图形以供Web使用。
(1)创建绘图对象的方法,格式为:ImageDraw.Draw(im, mode=None)
参数im:图像或图像对象
mode :用于颜色值的可选模式。对于RGB图像,此参数可以是RGB或RGBA(将图形混合到图像中)。对于所有其他模式,此参数必须与图像模式相同。如果省略,则模式默认为图像的模式。
返回:绘图对象
例子:draw = ImageDraw.Draw(img)
(2)在给定位置绘制字符串,格式为:ImageDraw.ImageDraw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align="left", direction=None, features=None)
参数: xy - 文本的左上角。
text - 要绘制的文本。如果它包含任何换行符,则将文本传递给multiline_text()fill- 用于文本的颜色。
font - 一个ImageFont实例。
spacing - 如果文本传递给multiline_text(),行之间的像素数。
align- 如果文本传递给multiline_text(),“left”,“center”或“right”。
direction-方向的文字。它可以是“rtl”(从右到左),'ltr'(从左到右),'ttb'(从上到下)或'btt'(从下往上)。
features-在文本布局期间使用的OpenType字体功能的列表。这通常用于打开默认情况下未启用的可选字体功能。
返回:将数字按照指定字体,颜色,字号添加在图像的指定位置
例子:draw.text((width-30, 0), '+1', font=myfont, fill=fillcolor)
3、ImageFont模块介绍:该ImageFont模块定义了一个具有相同名称的类。这个类的实例存储位图字体,并与该ImageDraw.Draw.text()方法一起使用 。
(1)创建字体对象的方法,格式为:ImageFont.truetype(font=None, size=10, index=0, encoding='', layout_engine=None)
参数: font - 一个truetype字体文件。在Windows下,如果在此文件名中找不到文件,则加载程序也会在Windows fonts/目录中查找。
size - 请求的大小,以分为单位。index - 要加载的字体(默认是第一个可用面)。
encoding - 要使用的字体编码(默认为Unicode)。通用编码是“unic”(Unicode),“symb”(Microsoft Symbol),“ADOB”(Adobe Standard),“ADBE”(Adobe Expert)和“armn”(Apple Roman))。
layout_engine - 要使用的布局引擎(如果可用): ImageFont.LAYOUT_BASIC或ImageFont.LAYOUT_RAQM。
返回:字体对象
例子:myfont = ImageFont.truetype('C:/windows/fonts/Arial.ttf', size=40)
4、ImageColor模块介绍:该ImageColor模块包含从CSS3样式颜色说明符到RGB元组的颜色表和转换器。这个模块被使用 Image.Image.new()和ImageDraw模块等。
(1)创建色彩对象的方法,格式为:ImageColor.getrgb(color)
参数:color – 一个颜色的字符串
返回:返回颜色
例子:fillcolor = ImageColor.getrgb('red')
注:解释的文章翻译自PIL官方文档,查看原文请移步至https://pillow.readthedocs.io/en/4.3.x/index.html
- Python3.6 20个入门级小程序(一)
- Python3.6 20个入门级小程序(二)
- Python3.6 20个入门级小程序(三)
- Python3.6 20个入门级小程序(四)
- Python3.6 20个入门级小程序(五)
- Python3 入门(一)
- Python3入门(一)
- 小程序之入门篇(一)
- #Python3.6 第一个程序
- Python3 快速入门(一)
- SpringMvc入门到开发(一)之入门小程序
- Hibernate入门到开发(一)之入门小程序
- MFC入门(一)-- 第一个简单的windows图形化界面小程序(打开计算器,记事本,查IP)
- tensorflow入门(一)---从一个小程序说起
- C语言18个经典小程序(一)
- 50个C语言小程序(一、百钱买百鸡)
- Weex(一)- 环境创建与第一个小程序
- JavaFX入门(一):我的第一个JavaFX程序
- SpringMVC里拦截器preHandle里的参数意思
- 返回xml或json过长时被nginx截断的解决办法
- ie6+左右浮动图片案例
- 使用Python操作mongo
- VGG-NET 阅读笔记
- Python3.6 20个入门级小程序(一)
- JAVA作业10-19
- Java bit、byte、位、字节、汉字、字符
- 基础知识------SQL练习
- JS判断是移动端还是PC端浏览器打开
- Scala函数定义
- Jquery开发记录1——表单篇(鼠标离开输入框触发操作)
- MacOS 安装配置jdk
- 关于托管磁盘的复制