我无法将Pil(python)保存为tga格式

时间:2018-07-15 08:52:04

标签: python python-3.x

我想保存QGraphicsView捕获的图像,因为tga格式只会出错,我不知道为什么

grab = self.graphicsView.grab() <-- Catch screen graphicview
pixmap = QPixmap.toImage(grab) <--- Change pixmap to QImage
image = Image.fromqimage(pixmap) <--- Take QImage and do Pil.Image
qtimage = ImageQt(image) 
image.save(qtimage, "image" ,".tga" ) <-- In this place don't work

值错误:

TypeError: save() takes from 2 to 3 positional arguments but 4 were given

但如果我更改

image.save(qtimage, "image" ,".tga" )

对于

image.save(qtimage, "image.tga" )

我还有另一个错误:

image.save(qtimage, "image.tga" )
save_handler = SAVE[format.upper()]
KeyError: 'IMAGE.TGA'

有人知道为什么吗?

1 个答案:

答案 0 :(得分:0)

docs中,Image.save仅需要一个文件名或一个打开的文件指针对象:

image.save("image.tga")

我认为您正在以某种方式将库(PIL.Image)与实例image混淆,实例Image已经知道其内容和数据。因此,无需再次将图像传递到保存功能。

顺便说一句,PIL也可以直接从QPixmap个来创建QImage个。因此,这样做就足够了,以防您在其他任何地方都不需要image = Image.fromqpixmap(self.graphicsView.grab()) image.save("image.tga")

HTTPClient