我正在尝试将图像从一个网页保存到另一个网页的数据库中。
这是代码的精简版本:
POSTER_SIZE = (200, 310)
LargePoster = urllib2.urlopen(PosterURL).read()
SmallPoster = LargePoster.resize(POSTER_SIZE, Image.ANTIALIAS)
conn = MySQLdb.connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, charset='utf8')
cur = conn()
cur.execute("UPDATE `table` SET `poster`=%s WHERE `id`=%d", (SmallPoster, ID))
cur.close()
注意:我不想保持纵横比,所以 除非它可以拉伸,否则不要建议。Image.thumbnail()
如您所见,我使用它检索图像urlopen()
,read()
但它返回一个字符串。我需要这个字符串属于 Image 类,以便我可以使用 PIL/Pillow 对其进行操作,然后将其作为字符串输出,以便将其发送到数据库。
我知道所有图像都是使用 JPEG 压缩的。
更新了彼得的代码
LargePosterString = urllib2.urlopen(MovieMeta['poster']).read()
LargePosterImage = Image.open(StringIO(LargePosterString))
SmallPosterImage = LargePosterImage.resize(POSTER_SIZE, Image.ANTIALIAS)
SmallPosterString = StringIO()
Format = 'JPEG'
SmallPosterImage.save(SmallPosterString.getvalue(), Format)