簡體   English   中英

如何將具有透明背景的 GdkPixbuf 復制到另一個 GdkPixbuf 上

[英]How to copy a GdkPixbuf with a transparent background over another GdkPixbuf

在 C/C++ 中使用 GDK 時,我嘗試將具有透明背景的 GdkPixbuf 復制到另一個 GdkPixbuf 上,gdk_pixbuf_copy_area() 說:

(滾動:6227):GdkPixbuf-CRITICAL **:10:41:37.084:gdk_pixbuf_copy_area:斷言'!(gdk_pixbuf_get_has_alpha(src_pixbuf)&&!gdk_pixbuf_getdest_alphax失敗

如果 gdk_pixbuf_copy_area() 不會這樣做,那么我該怎么做? 我想更改目標 GdkPixbuf,而不是顯示或窗口或其他任何內容,因此疊加和合成似乎不是答案。

謝謝。

看起來,您的目標 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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM