繁体   English   中英

PIL:OSError:未知文件格式

[英]PIL: OSError: Unknown File Format

尝试使用 Stack Overflow 上其他问题中的一段代码。 遇到这段代码:

from PIL import ImageFont
from urllib.request import urlopen

truetype_url = 'https://github.com/googlefonts/roboto/blob/main/src/hinted/Roboto-Black.ttf'
font = ImageFont.truetype(urlopen(truetype_url), size=10)

我收到了这个错误:

OSError: unknown file format

我尝试了其他建议,例如使用 requests.get 重新安装 PIL,但我收到了同样的错误。 我检查了链接,它确实将您带到了有问题的项目。 还有其他建议我可以尝试吗?

我的目标:能够从链接中获取字体,这样我就不必在我的计算机上本地执行此操作。

谢谢!

你可以这样做:

from PIL import Image, ImageFont, ImageDraw
import requests
import io

# Load font from URI
truetype_url = 'https://github.com/googlefonts/roboto/blob/main/src/hinted/Roboto-Black.ttf?raw=true'
r = requests.get(truetype_url, allow_redirects=True)
font = ImageFont.truetype(io.BytesIO(r.content), size=24)

# Create a black canvas and get drawing context
canvas = Image.new('RGB', (300,180))
draw = ImageDraw.Draw(canvas)

# Write in our font
draw.text((10, 10), "Got that crazy font", font=font, fill=(255,255,255))
canvas.save('result.png')

在此处输入图像描述


正如 Karl 在评论中指出的那样,您可以使用urllib来执行此操作,就像您最初打算这样:

from urllib.request import urlopen

truetype_url = 'https://github.com/googlefonts/roboto/blob/main/src/hinted/Roboto-Black.ttf?raw=true'

font = ImageFont.truetype(urlopen(truetype_url), size=10)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM