PIL保存为24位真彩色位图

4 投票
1 回答
5267 浏览
提问于 2025-04-16 02:59

我有一个用Gnuplot生成的PNG文件,我想把它放进一个Excel文档里,使用的是XLWT这个库。

不过,XLWT不能直接把PNG文件导入到文档中,它只支持BMP格式,所以我需要先把PNG转换成BMP。我是用PIL这个库来做转换的。

下面是相关的代码:

im = Image.open('%s' % os.path.join(os.getcwd(), s + '.png'))
im.save('%s.bmp' % s)

但是,XLWT给了我一个错误提示:

Exception: bitmap isn't a 24bit true color bitmap.

这是XLWT的代码:

self.chart.insert_bitmap(path, 2, 2) 

我知道这两种图片都能正常打开,Windows也能打开它们。我还试着在创建BMP文件后加了2秒的暂停(为了补偿写入时间),但还是不行。

我该如何用PIL制作一个24位真彩色的位图呢?

1 个回答

8

没事!我自己搞定了。

im = Image.open('%s' % os.path.join(os.getcwd(), s + '.png'))

改成

im = Image.open('%s' % os.path.join(os.getcwd(), s + '.png')).convert("RGB")

撰写回答