首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我尝试将python中url中的图像插入excel时,出现错误“强制转换为Unicode:需要字符串或缓冲区,cStringIO.StringO找到”。

当我尝试将python中url中的图像插入excel时,出现错误“强制转换为Unicode:需要字符串或缓冲区,cStringIO.StringO找到”。
EN

Stack Overflow用户
提问于 2020-06-16 16:50:30
回答 1查看 27关注 0票数 0

我试图从一个url向excel中插入一个图像,但是我得到了这个错误:

coercing to Unicode: need string or buffer, cStringIO.StringO found

下面是我的代码:

代码语言:javascript
复制
import cStringIO
from PIL import Image
import urllib

wb = pyExcelerator.Workbook()
ws = wb.add_sheet('sheet 1')
url= 'this url contains the url of an image'

f = urllib.urlopen(url)
buf = f.read()
fileIO = cStringIO.StringIO(buf)
img = Image.open(fileIO).convert("RGB")
img.thumbnail((71, 100), Image.ANTIALIAS)
img_bmp = cStringIO.StringIO()
img.save(img_bmp, 'BMP')
img_bmp.seek(0)
ws.insert_bitmap(img_bmp, 0, 1)
EN

回答 1

Stack Overflow用户

发布于 2020-06-16 21:19:52

我必须保存图像并将其转换为bmp。

代码语言:javascript
复制
import cStringIO
from PIL import Image
import urllib

wb = pyExcelerator.Workbook()
ws = wb.add_sheet('sheet 1')
url= 'this url contains the url of an image'
dir= 'It is a directory location'

f = urllib.urlopen(url)
buf = f.read()
fileIO = cStringIO.StringIO(buf)
img = Image.open(fileIO).convert("RGB")
img.thumbnail((71, 100), Image.ANTIALIAS)
img_bmp = cStringIO.StringIO()

#this is the one that converts the image to bmp
img.save(img_bmp, 'BMP') 

with open('{}/prova_img.bmp'.format(dir), 'w') as file_handle:
    file_handle.write(img_bmp.getvalue())

ws.insert_bitmap('{}/the_bitmap_image.bmp'.format(dir), 0, 1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62404603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档