我想画一个矩形和一个文本,这是我代码的一部分,有点模糊:
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
from PIL import ImageEnhance
source_img = Image.open(file_name).convert("RGB")
img1 = Image.new("RGBA", img.size, (0,0,0,0))
draw1 = ImageDraw.Draw(watermark, "RGBA")
draw1.rectangle(((0, 00), (100, 100)), fill="black")
img_rectangle = Image.composite(img1, source_img, img1)
draw2 = ImageDraw.Draw(img1, "RGBA")
draw2.text((20, 70), "something123", font=ImageFont.truetype("font_path123"))
Image.composite(img1, source_img, img1).save(out_file, "JPEG")
这会同时绘制它们,但它们是分开的:文本在矩形下面。而我希望在矩形内绘制一个文本。 我该怎么做?我应该把它们组合起来吗?
你可以不用
composite()
您可以创建按钮大小为的空图像并在其上放置文本,然后将此图像放在
source_img
上。这样长文本将被剪切为按钮大小。编辑:我使用
ImageFont.getsize(text)
获取文本大小并创建大小正确的按钮。相关问题 更多 >
编程相关推荐