1。目的
在这篇文章中,我将演示如何创建具有透明背景的图像,如下所示:
2. 环境
- Python3
3.代码
3.1 项目目录结构
我们的工作目录名称是 myscript,结构如下:
.
└── myscripts/
├── images/
│ ├── readme.txt
└── generate_png_transparent_demo.py
说明:
- images 目录存储我们创建的图片
generate_png_transparent_demo.py
是程序文件
3.2 函数
generate_png_transparent_demo.py中的核心函数:
from PIL import Image,ImageDraw
# define the size of the image
DEFAULT_WIDTH = 200
DEFAULT_HEIGHT = 80
# this function contains three parameters
# 1) image_file_name , the file name to create
# 2) the_text, is the text which would ben drawn on the image
# 3) alpha, the alpha value that control the image background transparency
def generate_png_transparent(image_file_name,the_text,alpha=0):
# First, we create an image with RGBA mode, the 'A' stands for alpha
# the last parameter (255,0,0,alpha) means (R,G,B,A), so the image background color is RED
img = Image.new("RGBA",(DEFAULT_WIDTH,DEFAULT_HEIGHT),(255,0,0,alpha))
# Now we start to draw text on the image
d = ImageDraw.Draw(img)
# the text start at position (20,25), and the color is green
d.text((20,25), the_text, fill=(0, 0, 255))
# Then we save and show the image
img.save(image_file_name,'PNG')
img.show(image_file_name)
pass
更多关于图像中的 alpha 值:
在数字图像中,每个像素都包含颜色信息(例如描述红色、绿色和蓝色强度的值),还包含一个称为“ alpha ”值的不透明度值。alpha 值为1 表示完全不透明,alpha值为0 表示完全透明
3.3 main函数
现在我们应该为用户提供一个启动程序的主要功能:
if __name__ == '__main__':
generate_png_transparent("./images/a.png","hello world alpha 0",0)
generate_png_transparent("./images/b.png", "hello world alpha 50", 50)
generate_png_transparent("./images/c.png", "hello world alpha 100", 100)
3.4 测试
最后,我们可以测试我们的水印功能,如下所示:
$ python generate_png_transparent_demo.py
有用!