在C/C++中使用GDK时,我尝试在另一个GdkPixbuf上复制具有透明背景的GdkPixbuf,gdk_pixbuf_copy_area()说:
(滚动:6227):GdkPixbuf-CRITICAL **:10:41:37.084: gdk_pixbuf_copy_area: assertion '!(gdk_pixbuf_get_has_alpha (src_pixbuf) && !gdk_pixbuf_get_has_alpha (dest_pixbuf))‘失败
如果gdk_pixbuf_copy_area()不能做到这一点,那我该怎么做呢?我想要更改目标GdkPixbuf,而不是显示或窗口或其他任何东西,因此覆盖和组合似乎不是答案。
谢谢。
发布于 2019-08-10 02:35:47
看起来,你的目标GdkPixbuf没有alpha通道,而你的源GdkPixbuf有。这是无效的组合。
尝试使用以下命令将alpha通道添加到目标Pixbuf
dest_alpha = gdk_pixbuf_add_alpha(dest, false, 0, 0, 0);在调用gdk_pixbuf_copy_area()之前去掉这个断言。请注意,这将创建一个添加了alpha通道的新pixbuf (参见手册页gdk_pixbuf_add_alpha())
https://stackoverflow.com/questions/57435283
复制相似问题