from IPython.display import Image as IPythonImage
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
def display_cover(top,bottom ):
import requests
name='album_art_raw.png'
album_art_raw = requests.get('https://picsum.photos/500/500/?random')
with open(name,'wb') as album_art_raw_file:
album_art_raw_file.write('album_art_raw.content')
img = Image.open("album_art_raw.png")
draw = ImageDraw.Draw(img)
band_name_font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 25) #25pt font
album_name_font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 20) # 20pt font
band_x, band_y = 50, 50
album_x, album_y = 50, 400
outline_color ="black"
draw.text((band_x-1, band_y-1), top, font=band_name_font, fill=outline_color)
draw.text((band_x+1, band_y-1), top, font=band_name_font, fill=outline_color)
draw.text((band_x-1, band_y+1), top, font=band_name_font, fill=outline_color)
draw.text((band_x+1, band_y+1), top, font=band_name_font, fill=outline_color)
draw.text((album_x-1, album_y-1), bottom , font=album_name_font, fill=outline_color)
draw.text((album_x+1, album_y-1), bottom , font=album_name_font, fill=outline_color)
draw.text((album_x-1, album_y+1), bottom , font=album_name_font, fill=outline_color)
draw.text((album_x+1, album_y+1), bottom , font=album_name_font, fill=outline_color)
draw.text((band_x,band_y),top,(255,255,255),font=band_name_font)
draw.text((album_x, album_y),bottom,(255,255,255),font=album_name_font)
return img
# calling function
img=display_cover(top='top',bottom='bottom')
TypeError:需要类似字节的对象,而不是'str'
为什么我看到TypeError。代码中的问题在哪里?
发布于 2018-12-17 15:48:05
原因是你引用"album_art_raw.content"
它使它成为一个字符串而不是你的响应属性
这行应该是 album_art_raw_file.write(album_art_raw.content)
https://stackoverflow.com/questions/-100006309
复制相似问题