我想保存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'
有人知道为什么吗?
答案 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