详解用Python创建透明的png图片 – pillow

  • Post category:Python

对于用Python创建透明的png图片,我们可以使用Pillow库来完成,以下是完整攻略:

安装Pillow库

在开始使用Pillow之前,我们需要在Python中安装Pillow库。使用以下命令可以完成安装:

pip install pillow

创建透明的png图片

要创建透明的PNG图片,我们需要在Image对象上设置alpha通道。以下是用Pillow创建透明PNG图片的步骤:

  1. 导入Pillow库和Image模块:
from PIL import Image
  1. 创建一个新的Image对象,并设置图像的大小。
img = Image.new("RGBA", (500, 500), (255, 255, 255, 0))

这里我们创建了一个大小为500×500的RGBA图像,并将它的背景设置为完全透明。

  1. 保存图像。
img.save("transparent.png")

这将在当前目录下创建一个名为”transparent.png”的png图像文件。该文件将是透明的,因为我们在第2步中将alpha通道设置为0。

示例1:创建一个带有透明图层的png图片

下面是一个简单的示例,用Pillow创建一个带有透明背景的PNG图片:

from PIL import Image
img = Image.new("RGBA", (500, 500), (255, 255, 255, 0))
draw = ImageDraw.Draw(img)

# 在图像上绘制一个红色的圆形,中心坐标(250, 250),半径为100
draw.ellipse((150, 150, 350, 350), fill=(255, 0, 0, 150), outline=None)

# 保存图像
img.save("transparent_circle.png")

这个示例中,我们使用ImageDraw来绘制一个红色的圆形,将它放置于透明的PNG图片上,并将结果保存到磁盘。

示例2:创建一个带有透明文本的PNG图片

我们还可以在PNG图片上添加带有透明度的文本。下面是一个示例,展示如何在PNG图片的中央添加透明文本:

from PIL import Image, ImageDraw, ImageFont
img = Image.new("RGBA", (500, 500), (255, 255, 255, 0))
draw = ImageDraw.Draw(img)

# 设置文本
text = "Hello World!"

# 找到适合文本的字体和大小
font = ImageFont.truetype("arial.ttf", 50)

# 获取文本大小
text_width, text_height = draw.textsize(text, font)

# 找到文本的中心
center_x = (img.width - text_width) / 2
center_y = (img.height - text_height) / 2

# 在图像上绘制透明文本
draw.text((center_x, center_y), text, font=font, fill=(255, 0, 0, 150), align="center")

# 保存图像
img.save("transparent_text.png")

在这个示例中,我们创建了一个白色透明的PNG图片,并在图片中央添加了一行透明的文本。我们使用ImageFont.truetype()方法来找到适合的字体和大小,然后使用draw.text()方法将文本绘制在图像上。