X11相当于gdk_pixbuf_add_alpha

时间:2015-07-17 17:41:14

标签: gtk x11 alpha gdk

在x11中,我使用XGetImage获得了二进制blob。

在GDK中我们有这个函数,它将{255}的alpha加到Pixbufhttps://developer.gnome.org/gdk-pixbuf/stable/gdk-pixbuf-Utilities.html#gdk-pixbuf-add-alpha

我想知道在X11中是否有这样的方便功能。

所以我有这样的结构:

typedef struct _XImage {
    int width, height;      /* size of image */
    int xoffset;            /* number of pixels offset in X direction */
    int format;         /* XYBitmap, XYPixmap, ZPixmap */
    char *data;         /* pointer to image data */
    int byte_order;         /* data byte order, LSBFirst, MSBFirst */
    int bitmap_unit;        /* quant. of scanline 8, 16, 32 */
    int bitmap_bit_order;       /* LSBFirst, MSBFirst */
    int bitmap_pad;         /* 8, 16, 32 either XY or ZPixmap */
    int depth;          /* depth of image */
    int bytes_per_line;     /* accelerator to next scanline */
    int bits_per_pixel;     /* bits per pixel (ZPixmap) */
    unsigned long red_mask;     /* bits in z arrangement */
    unsigned long green_mask;
    unsigned long blue_mask;
    XPointer obdata;        /* hook for the object routines to hang on */
    struct funcs {          /* image manipulation routines */
        struct _XImage *(*create_image)();
        int (*destroy_image)();
        unsigned long (*get_pixel)();
        int (*put_pixel)();
        struct _XImage *(*sub_image)();
        int (*add_pixel)();
    } f;
} XImage;

ximage.data字段中,我有RGB二进制数据。我帮助一个朋友,我需要制作RGBA二进制数据。

由于

1 个答案:

答案 0 :(得分:0)

不幸的是,GDK中没有这样的抽象。

您必须通过迭代* char 数据成员手动执行此操作。