Python生成透明背景图片
转载请注明出处:http://blog.csdn.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-8from PIL import Image, ImageDraw, ImageFontimage = 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生成透明背景图片相关推荐
- php 创建透明png,php生成透明背景图片实例
例子,php生成背景图片的代码. 复制代码 代码示例: //透明背景图片 header('content-type:text/html;charset=gbk'); $safess = $_get[s ...
- MATLAB旋转后生成透明背景图片
1.读入图片 2.旋转图片 3.改变背景颜色 4.抠图 I = imread('0.png');%读取图片 for i=1:1:90I_rotating = imrotate(I,i*-1,'bili ...
- php ai格式生成png,AI怎么生成透明png? ai导出PNG格式透明背景图片的教程
我们需要一张背景透明的png格式的图片,该怎么使用ai导出透明png格式的图片呢?请看下文呢详细介绍. 1.请打开AI软件,以快捷键Ctrl+N新建一个空白文档.选择左侧工具栏中的椭圆工具. 2.用椭 ...
- OpenCV技巧 | 常用格式图片保存为透明背景图片(附Python源码)-教你轻松制作Logo
导读 本文主要介绍使用OpenCV将常用格式图片保存为透明背景图片的方法与实现代码. 实现目标 本文的目标有如下两个: ① 将常见格式[jpg/png/bmp]白色背景图片转换保存为透明背景图片: ② ...
- php 网页 透明背景图片,php 处理透明背景的图片时的问题
PHP图象处理之透明背景的gif和png图片的一些问题 1,直接读取有透明背景的PNG格式文件,然后直接输出,背景变成了黑色,gif则没有这种情况. 解决方法:使用 imagesavealpha ($ ...
- C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成
标题C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成 最近有个需求是将生成的邀请码与背景图片合成成为新的图片,查找了一些资料后又整理了一遍,查到了一个群主的帖子,虽然代码略微有点问题,地 ...
- 【CSS】PhotoShop 切图 ② ( PhotoShop 切片选择工具 | 清除切片 | 新建基于图层的切片 | 透明背景图片切图 | 根据参考线选择切片 )
文章目录 一. PhotoShop 切片选择工具 二.清除切片 三.新建基于图层的切片 四.透明背景图片切图 五.根据参考线选择切片 一. PhotoShop 切片选择工具 如果之前使用 切片工具 设 ...
- 网页中PNG透明背景图片的完美应用
PNG 图片在网站设计中是不可或缺的部分,最大的特点应该在于 PNG 可以无损压缩,而且还可以设置透明,对于增强网站的图片色彩效果有重要的作用. 但为什么 PNG 图片却没有 GIF 和 JPG 图片 ...
- 学习使用html2canvas生成渐变色背景图片
学习使用html2canvas生成渐变色背景图片 全部代码 html2canvas官网 生成图片的下载 全部代码 <!DOCTYPE html> <html><head& ...
最新文章
- WEB高性能开发(10) - 疯狂的HTML压缩
- 自定义request_Spring Security 自定义登录认证(二)
- 设置element表格透明样式
- # 日期待t_2020最值得期待的几款新车
- 在R.java中新建自定义的新类
- c++ ea 代码 生成_看EA如何生成代码框架
- PyTorch | torch.linspace()创建均分数列张量 | torch.linspace()如何使用?| torch.linspace()使用方法 | torch.linspace例子
- 随着电子计算机的应用 会计信息保存的形式,会计信息功系统简答题.doc
- java常量数组吗_java – 如何在注释中使用数组常量
- Educational Codeforces Round 52: D. Three Pieces(记忆化搜索)
- [置顶] Android改变图像的饱和度、亮度和对比度
- mysql打开数据库控制台_在控制台中操作MYSQL数据库步骤以及一些小问题
- slub释放过程-do_slab_free
- 系统服务器ping偶尔超时,云服务器ping超时原因
- 前端正则表达式汇总整理
- volatile能保持线程安全吗_volatile是什么?volatile能保证线程安全性吗?如何正确使用volatile?...
- 14种异常检测方法汇总
- Codeforces Global Round 23 E CF1746E Joking (Hard Version)
- 刚子扯扯蛋:说下百度对网站原创文章的个人感受
- 图论学习--6 平面图(思维导图)平面概念 对偶图 平面图嵌入算法
热门文章
- 基于解决sci和ei等外文思维顺序问题的辅助软件分析
- Navicat连接云端服务器上的MySQL数据库
- 应用程序操作word文件报“RPC服务器不可用,HRESULT:0x800706BA”
- Maven项目集成cxf框架发布WebService
- 面向对象编程原则(06)——依赖倒转原则
- java依赖倒转原则_设计原则之--依赖倒转原则
- List中remove()方法的陷阱,开发谨记!
- c语言如何反复执行一段程序,C语言中重复执行程序的问题
- 政府行政管理思维与互联网思维
- python中格式化字符串的使用_Python中的格式化字符串