调用 PyQt 的 setPixmap() 并传入 Pixmap 时 "Python.exe" 崩溃
我有一个程序,可以通过网络连接发送和接收图片。服务器用 'image.tostring()' 把图片数据发送出去,客户端接收到这些数据后,用 'Image.fromstring' 把它转换回图片,然后再用 'ImageQt.ImageQt(image)' 转换成 QImage,接着用 'QPixmap.fromimage(qimage)' 转换成 QPixmap,最后用 'lable.setPixmap(qpixmap)' 更新我的 QWidget 中的 QLabel 显示的图片。
对于小图片,一切都运行得很好,但一旦图片大于 200x200 像素,python.exe 就会崩溃,控制台只显示“进程以退出代码 -1073741819 终止”,并没有告诉我具体是什么问题。
我把问题缩小到 'setPixmap()' 这个步骤(只要把这行注释掉,其他的都能正常工作),但我看不出问题出在哪里。
这个问题只发生在客户端,服务器那边的步骤是一样的,从图片到 QImage,再到 QPixmap,然后调用 setPixmap,但没有任何问题。
我还尝试把它做成 QBitmap,然后在这个位图上使用 setPixmap,这样是可以的(但它是黑白的,不能用)。真奇怪!
如果有人能帮忙就太好了!
1 个回答
0
你可以试着把图像数据保存到一个文件里,然后用图像查看器打开这个文件,看看里面的数据是否完整。如果数据不完整,你还是可以得到一个QImage对象,并创建一个QPixmap,但这个对象可能会有问题。