python - 创建具有多种颜色的图像并添加文本

标签 python image drawing python-imaging-library

我正在尝试用 python 中的一些文本创建图像,例如:

import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
font = ImageFont.truetype("/usr/share/fonts/dejavu/DejaVuSans.ttf",25)
img=Image.new("RGBA", (200,200),(120,20,20))
draw = ImageDraw.Draw(img)
draw.text((0, 0),"This is a test",(255,255,0),font=font)
draw = ImageDraw.Draw(img)
img.save("test.png")

虽然效果很好,但我无法添加更多颜色,例如 3 种不同的颜色 RED、YELLOW、GREEN,就像信号量一样。

此外,图像是否可以变形,例如圆角?

非常感谢

最佳答案

您可以在 ImageDraw.Draw 类中使用 chord 调用。你必须给这个函数传递四个参数,第一个是位置和大小,描述为一个包围盒,即(x1, y1, x2, y2),第二个是开始角度,第三个是结束角度;如果你想要一个完整的圆,你必须分别指定 0 和 360。您可以使用命名参数 fill 设置填充颜色。

最好用一个例子来解释:

import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw

font = ImageFont.truetype("/usr/share/fonts/truetype/DejaVuSans.ttf",25)
img=Image.new("RGBA", (200,200),(120,20,20))
draw = ImageDraw.Draw(img)
draw.text((0, 0),"This is a test",(255,255,0),font=font)
draw.chord((100, 75, 125, 100), 0, 360, fill='green')
draw.chord((75, 100, 100, 125), 0, 360, fill='blue')
draw.chord((125, 125, 150, 150), 0, 360, fill='yellow')
draw = ImageDraw.Draw(img)

img.save("test.png")

关于python - 创建具有多种颜色的图像并添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26289679/

相关文章:

python - 将两个大小相等的列表相乘并对结果求和(点积)

python - 用于从 Google 云存储呈现静态图像的 Django 设置

jquery - 图像调整大小和裁剪以适合父 div

jquery - 获取隐藏图像的高度?

python - 我想从数组中选择特定范围的索引

python - 计算100个n维点的欧式范数?

java - 更改 .png 以使用 JpegImagesToMovie.java

winapi - Win32 - 什么可能导致不正确的绘图?

Java JPanel 绘制形状

drawing - 一些更有效的白板技巧?