GTK+3 Gdk Pixbuf从数据中创建新图像的时候出现"分段错误(core dumped)"的错误代码139。

2024-06-13 09:19:41 发布

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

在我的应用程序中,我有一个GtkImage,它必须显示从所选文件处理的图像。所以,在处理程序部分我有:

import numpy as np
from PIL import Image , ImageDraw
from gi.repository import Gtk,  GdkPixbuf
. . .
. . .
def on_fitchooserdialog_response(self, menuitem, data=None):
    if data == 1:  
        self.fitlist = self.fitchooser.get_filenames()
        # get data from 1st file:
        _, self.data = Getdata(self.fitlist[0])
        # convert from Fits to 2D array:
        pngarray = Fit2png(self.data)
        # rescale:
        size = tuple(x/2 for x in pngarray.shape)
        im = Image.fromarray(pngarray)
        im.thumbnail((size[1],size[0]), Image.BICUBIC)

到这里来,一切都好。如果我们这样做:

^{pr2}$

预期的图像被粘贴到GtkImage小部件上。 但这是一种丑陋的方式,不是吗?在

所以我试着:

im = im.convert("RGB")
arr = np.array(im).flatten()
pixbuf = GdkPixbuf.Pixbuf.new_from_data(arr,
      GdkPixbuf.Colorspace.RGB, False, 8, size[1], size[0], 3*size[1])

但结果是“错误139,分段错误(核心转储)”

我错过了什么?在


Tags: from图像imageimportselfconvertdatasize