使用PIL在图像上添加文本。错误消息

2024-10-06 06:52:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码下载一个图像并在图像上写入文本。下载效果很好。错误发生在绘图.text行。我不知道我为什么会出错。ttf文件位于正确的位置,路径名正确。我用pip装了枕头。我没有发现任何错误。在

import urllib

urlSA = "http://www.wpc.ncep.noaa.gov/archives/sfc/" + year + "/usfntsfc" + year + month + day + "09.gif"
savedFileSA = "C:/images/sa2000/" + month + day + yearShort + ".jpg"

urllib.urlretrieve (urlSA, savedFileSA)

# Add a title to the SA image
import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw

img = Image.open(savedFileSA)
draw = ImageDraw.Draw(img)
fnt = ImageFont.truetype("C:/images/arial.ttf", 12)
draw.text((10, 10),"Sample Text",(3,3,3),font=fnt)

img.save(savedFileSA)

错误:

^{pr2}$

Tags: textfrom图像importimgpil错误urllib
1条回答
网友
1楼 · 发布于 2024-10-06 06:52:44

问题是GIF图片是调色板。如果首先将其转换为RGB,则代码将正常工作。在

换行

img = Image.open(savedFileSA)

^{pr2}$

下面是在我的机器上运行的代码。它下载一张图片,并在上面放上一个绿色的“示例文本”。请注意,我使用的是OSX,因此我的路径可能与您的不同。在

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

urlSA = "http://www.wpc.ncep.noaa.gov/archives/sfc/2015/usfntsfc2015010518.gif"
savedFileSA = "andrew.gif"
urllib.urlretrieve (urlSA, savedFileSA)

img = Image.open(savedFileSA).convert("RGB")
draw = ImageDraw.Draw(img)
fnt = ImageFont.truetype("/Library/Fonts/Comic Sans MS.ttf", 72)
draw.text((10, 10), "Sample Text", (0, 128, 0), font=fnt)

img.show()
img.save("andrew.jpg")

相关问题 更多 >