如何在不保存图像的情况下用枕头创建位图?

2024-03-28 17:17:00 发布

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

目前我使用

im.save(save_img)
out_book.get_sheet(0).insert_bitmap(save_img, 0, 0)

在excel工作表中插入位图。在

我试图用

^{pr2}$

但我得到AttributeError: module 'PIL.Image' has no attribute 'tobitmap'

我找到了this,但这并没有解决我的问题。这是一个全新的windows安装和一个全新的虚拟机,其中从来没有PIL-only枕头4.3.0。另外,我在我的pillow源文件中找到了tobitmap,它在在线文档中。奇怪的是我可以用

im = Image.open(image_name).convert("RGB")
im.thumbnail((533, 70))
im.save(save_img)
out_book.get_sheet(0).insert_bitmap(save_img, 0, 0)

但不是tobitmap,有什么想法吗?在

编辑:当然,我可以在插入后删除临时保存的文件,但这不是一种真正的python/好方法。在


Tags: imageimggetpilsaveoutexcelsheet
1条回答
网友
1楼 · 发布于 2024-03-28 17:17:00

如果您使用的是from PIL import Image-正如您在使用枕头库时应该使用的那样,那么Image将是该模块的名称,它没有名为tobitmap的属性或函数。您可能会感到困惑,因为该模块中还有一个类,它也被命名为Image,并且该类的实例有一个可以尝试使用的tobitmap()方法。在

底线:您需要调用Image.open(),或者创建一个Image.Image实例,然后可以调用它的tobitmap()方法。在

也就是说,我不认为这有助于避免在调用out_book.get_sheet(0).insert_bitmap()之前必须将图像保存到文件中,因为根据您在注释中所说的,insert_bitmap()方法将接受一个file/path参数(换句话说,一个文件的名称,而不是只存储在内存中的东西)。在

相关问题 更多 >