Gtk 从原始数据创建GdkPixbuf

Gtk 从原始数据创建GdkPixbuf,gtk,Gtk,我有一些原始数据是const unsigned char*格式的图像 我通过调用函数gdk_pixbuf_new_从_数据创建了GdkPixbuf,如下所示。但是,当我检查新GdkPixbuf的内存时,它根本没有被创建 virtual void onPaint(Window *wini, const unsigned char *bitmap_in, const Rect &bitmap_rect, size_t num_copy_rects, const

我有一些原始数据是const unsigned char*格式的图像

我通过调用函数gdk_pixbuf_new_从_数据创建了GdkPixbuf,如下所示。但是,当我检查新GdkPixbuf的内存时,它根本没有被创建

    virtual void onPaint(Window *wini, const unsigned char *bitmap_in, const Rect &bitmap_rect,
            size_t num_copy_rects, const Rect *copy_rects,
            int dx, int dy, const Rect &scroll_rect)
    {

        GdkPixbuf* pbuf = gdk_pixbuf_new_from_data((const guchar*)bitmap_in,GDK_COLORSPACE_RGB,FALSE,8,bitmap_rect.width(),bitmap_rect.height(),GST_ROUND_UP_4(bitmap_rect.width() * 3),NULL,NULL);
        static int call_count = 0;
        string fname = "/tmp/testout/file" + toString(call_count++) + ".png";
        bool state = gdk_pixbuf_save(pbuf,fname.c_str(),"png",NULL);
   }     

您确定
rowstride
参数正确吗?Ya dat正确。实际上,位图数据是BGR格式的,我需要将其转换为RGB,并且可以正常工作。