转载请注明出处:http://blog..net/jinixin/article/details/79115782

关于画图,Python不乏许多优秀的第三方库能支持操作图片,比如Matplotlib、Pillow等。这些库可以对给定图片做各种各样的修饰,甚至是直接创建新图片。今天我就尝试用Pillow来制作一张透明背景的图片,并在图片上写一句话。

模块

在画图过程中,我主要使用了Pillow的Image、ImageDraw、ImageFont三个模块,下面对它们简单介绍:

Image:构建一个image对象,你可以通过new或是从现有文件中加载来创建它

ImageDraw:为image对象提供简单的平面图形。我把它理解成画笔,可以操作它在image对象上加线条,加文字等

ImageFont:设置字体的属性。由于使用到绘文字,所以需使用该模块对字体做些调整

直接上代码:

#!/usr/bin/env python

# coding=utf-8

from PIL import Image, ImageDraw, ImageFont

image = Image.new(mode='RGBA', size=(400, 50))

draw_table = ImageDraw.Draw(im=image)

draw_table.text(xy=(0, 0), text=u'仰起脸笑得像满月', fill='#008B8B', font=ImageFont.truetype('./SimHei.ttf', 50))

image.show() # 直接显示图片

image.save('满月.png', 'PNG') # 保存在当前路径下,格式为PNG

image.close()

运行代码,便能看到生成的图片。其中SimHei字体文件我上传到了百度云,提取码“4uhw”,点击这里下载。如果你介意生成的透明背景图上面的文字带有深色轮廓,可以看这篇文章去除。

方法

代码不是很长,下面简单解释代码中用到的几个方法:

1)PIL.Image.new(mode, size, color=0)

通过给定的mode创建指定大小的image对象

mode参数:定义了图像中关于像素的一些属性。比较常见的有:黑白图像L,真彩色RGB,带透明度的真彩色RGBA等,具体看这里吧

size参数:以像素为单位指定图片的长与宽,tuple形式

color参数:指定图片的背景色。当图像模式为RGBA时,若不指定该参数,默认便是透明背景

2)PIL.ImageDraw.Draw(im, mode=None)

创建一个对象用于在image对象上进行作画

im参数:已创建的image对象

mode参数:定义了图像中关于像素的一些属性。若未给定,将与传入的image对象的mode参数保持一致

3)PIL.ImageDraw.ImageDraw.text(xy, text, fill=None, font=None, direction=None)

在图片指定位置写一行文本,多行文本需要使用multiline_text方法

xy参数:指定文本距左上角的位置,tuple形式

text参数:文本内容

fill参数:文本颜色,支持英文单词与十六进制表示法

font参数:字体对象,一般通过ImageFont模块构建,用于指定字体文件位置与字体大小

direction参数:文本内容方向,需要libraqm支持

(该方法还有其他参数,具体请点击这里)

参考资料:

Pillow 4.2 文档

文中如有不当之处,还望大家包容和指出,感谢

python背景透明_Python生成透明背景图片相关推荐

  1. python给pdf加图片签名_Python生成个性签名图片获取GUI过程解析

    这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来看看程序运行的样子: 所以,程序 ...

  2. python创建窗体_python生成窗口

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 2.python生成目录树上述 cmd 方式虽然可以生成目录树,但是并不美观,让 ...

  3. python创建方法draw_Python生成便签图片的方法总结

    利用Python如何生成便签图片详解 前言 最近有文字转图片的需求,但是不太想下载 APP,就使用 Python Pillow 实现了一个,效果如下: PIL 提供了 PIL.ImageDraw.Im ...

  4. 大乐透python预测程序_Python生成随机验证码,大乐透号码

    随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__': check_code = "" # ...

  5. python背景色渐变_Python 生成纯色或渐变色图片

    1.问题或需求描述: Python 生成纯色或渐变色图片 2.解决方法或原理: python 代码 import numpy as np from PIL import Image def RGB(r ...

  6. python渐变色代码_Python 生成纯色或渐变色图片

    1.问题或需求描述: Python 生成纯色或渐变色图片 2.解决方法或原理: python 代码 import numpy as np from PIL import Image def RGB(r ...

  7. python输出姓名_Python生成随机不重复姓名昵称

    姓采用百家姓,名字从常用名字高频字选取两个汉字,再和当前时间戳组合,估计应该是不会重复了,代码如下: # -*- coding:utf-8 -*- import random import time ...

  8. python编写图像识别_python实现识别相似图片小结

    文章简介 在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系. 当然了,图像识别这个话题作为计算机科学的一个分支,不可能 ...

  9. python log壁纸_python生成单词壁纸

    1.首先上结果: 其实就是一段简单的代码.加上英语单词表加上几张背景图生成许多类似的图片再设置成桌面背景,十分钟一换.有心的人闲的时候随手就能换换桌面背背单词.最不济也能混个脸熟. 3.上代码 #-* ...

  10. python词云图_Python生成一篇文章的词云图

    使用前需要确保安装以下第三方库: jieba, wordcloud, imageio, sklearn,csv imageio.csv和sklearn在安装anaconda时默认是安装的,另外两个库需 ...

最新文章

  1. 腾讯云:新基建大潮下国产数据库的探索与思考 | 云·创课程实录
  2. UVa661 Blowing Fuses
  3. 天猫11.11:手机淘宝 521 性能优化项目揭秘
  4. mysql_常用命令
  5. 【Uva 10934】Dropping water balloons
  6. [Angular 依赖注入详谈] Angular Module Providers几种类型的实现源代码具体位置
  7. BZOJ2154: Crash的数字表格 BZOJ2693: jzptab
  8. java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...
  9. unity最基本操作
  10. SQL Server 触发器--备忘
  11. 千万不要花费时间和金钱学习火山软件开发平台 - 递归软件绝非易语言的延续!
  12. 如何按比例裁剪图片?怎样改变图片形状?
  13. 双显示器扩展显示时怎么移动鼠标到另一块屏?
  14. 泰克MSO2014B|MSO2024B|MSO2022B混合信号示波器使用教程
  15. laravel获取最后一条
  16. PhpSpreadsheet常用操作
  17. 在word/wps插入代码+保持源代码风格+加行号
  18. 咸鱼成长故事简介yyds
  19. 富士x-e4参数 怎么样?测评值得买吗?
  20. Fast and Provably Good Seedings for k-Means阅读笔记

热门文章

  1. java 右对齐_Java中如何控制右对齐输出?
  2. 企业微信商户号是什么?如何开通?
  3. Mac怎么锁屏?苹果电脑怎么锁定屏幕
  4. 【20211009】【数学基础】极值点、驻点、拐点的区别和联系
  5. R-概率统计与模拟(四)拒绝抽样
  6. 「HNOI 2009」图的同构记数
  7. uniapp 点击动画_uni-app animation动画
  8. python如何截长图_python如何实现对元素的长截图功能 python实现对元素的长截图功能实例...
  9. 线性表13|约瑟夫问题 – 数据结构和算法18
  10. [复变函数]第20堂课 5.4 整函数与亚纯函数的概念