转载请注明出处: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生成透明背景图片相关推荐

  1. php 创建透明png,php生成透明背景图片实例

    例子,php生成背景图片的代码. 复制代码 代码示例: //透明背景图片 header('content-type:text/html;charset=gbk'); $safess = $_get[s ...

  2. MATLAB旋转后生成透明背景图片

    1.读入图片 2.旋转图片 3.改变背景颜色 4.抠图 I = imread('0.png');%读取图片 for i=1:1:90I_rotating = imrotate(I,i*-1,'bili ...

  3. php ai格式生成png,AI怎么生成透明png? ai导出PNG格式透明背景图片的教程

    我们需要一张背景透明的png格式的图片,该怎么使用ai导出透明png格式的图片呢?请看下文呢详细介绍. 1.请打开AI软件,以快捷键Ctrl+N新建一个空白文档.选择左侧工具栏中的椭圆工具. 2.用椭 ...

  4. OpenCV技巧 | 常用格式图片保存为透明背景图片(附Python源码)-教你轻松制作Logo

    导读 本文主要介绍使用OpenCV将常用格式图片保存为透明背景图片的方法与实现代码. 实现目标 本文的目标有如下两个: ① 将常见格式[jpg/png/bmp]白色背景图片转换保存为透明背景图片: ② ...

  5. php 网页 透明背景图片,php 处理透明背景的图片时的问题

    PHP图象处理之透明背景的gif和png图片的一些问题 1,直接读取有透明背景的PNG格式文件,然后直接输出,背景变成了黑色,gif则没有这种情况. 解决方法:使用 imagesavealpha ($ ...

  6. C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成

    标题C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成 最近有个需求是将生成的邀请码与背景图片合成成为新的图片,查找了一些资料后又整理了一遍,查到了一个群主的帖子,虽然代码略微有点问题,地 ...

  7. 【CSS】PhotoShop 切图 ② ( PhotoShop 切片选择工具 | 清除切片 | 新建基于图层的切片 | 透明背景图片切图 | 根据参考线选择切片 )

    文章目录 一. PhotoShop 切片选择工具 二.清除切片 三.新建基于图层的切片 四.透明背景图片切图 五.根据参考线选择切片 一. PhotoShop 切片选择工具 如果之前使用 切片工具 设 ...

  8. 网页中PNG透明背景图片的完美应用

    PNG 图片在网站设计中是不可或缺的部分,最大的特点应该在于 PNG 可以无损压缩,而且还可以设置透明,对于增强网站的图片色彩效果有重要的作用. 但为什么 PNG 图片却没有 GIF 和 JPG 图片 ...

  9. 学习使用html2canvas生成渐变色背景图片

    学习使用html2canvas生成渐变色背景图片 全部代码 html2canvas官网 生成图片的下载 全部代码 <!DOCTYPE html> <html><head& ...

最新文章

  1. WEB高性能开发(10) - 疯狂的HTML压缩
  2. 自定义request_Spring Security 自定义登录认证(二)
  3. 设置element表格透明样式
  4. # 日期待t_2020最值得期待的几款新车
  5. 在R.java中新建自定义的新类
  6. c++ ea 代码 生成_看EA如何生成代码框架
  7. PyTorch | torch.linspace()创建均分数列张量 | torch.linspace()如何使用?| torch.linspace()使用方法 | torch.linspace例子
  8. 随着电子计算机的应用 会计信息保存的形式,会计信息功系统简答题.doc
  9. java常量数组吗_java – 如何在注释中使用数组常量
  10. Educational Codeforces Round 52: D. Three Pieces(记忆化搜索)
  11. [置顶] Android改变图像的饱和度、亮度和对比度
  12. mysql打开数据库控制台_在控制台中操作MYSQL数据库步骤以及一些小问题
  13. slub释放过程-do_slab_free
  14. 系统服务器ping偶尔超时,云服务器ping超时原因
  15. 前端正则表达式汇总整理
  16. volatile能保持线程安全吗_volatile是什么?volatile能保证线程安全性吗?如何正确使用volatile?...
  17. 14种异常检测方法汇总
  18. Codeforces Global Round 23 E CF1746E Joking (Hard Version)
  19. 刚子扯扯蛋:说下百度对网站原创文章的个人感受
  20. 图论学习--6 平面图(思维导图)平面概念 对偶图 平面图嵌入算法

热门文章

  1. 基于解决sci和ei等外文思维顺序问题的辅助软件分析
  2. Navicat连接云端服务器上的MySQL数据库
  3. 应用程序操作word文件报“RPC服务器不可用,HRESULT:0x800706BA”
  4. Maven项目集成cxf框架发布WebService
  5. 面向对象编程原则(06)——依赖倒转原则
  6. java依赖倒转原则_设计原则之--依赖倒转原则
  7. List中remove()方法的陷阱,开发谨记!
  8. c语言如何反复执行一段程序,C语言中重复执行程序的问题
  9. 政府行政管理思维与互联网思维
  10. python中格式化字符串的使用_Python中的格式化字符串