ui/gtk/image.c

changeset 567
4ee3e4ce03ad
parent 565
54a97e543389
child 578
950d2e38957b
--- a/ui/gtk/image.c	Thu Apr 17 10:25:41 2025 +0200
+++ b/ui/gtk/image.c	Thu Apr 17 10:27:49 2025 +0200
@@ -341,6 +341,26 @@
     return 0;
 }
 
+UIEXPORT int ui_image_load_data(UiGeneric *obj, const void *imgdata, size_t size) {
+    GBytes *bytes = g_bytes_new_static(imgdata, size);
+    GInputStream *in = g_memory_input_stream_new_from_bytes(bytes);
+    GError *error = NULL;
+    GdkPixbuf *pixbuf = gdk_pixbuf_new_from_stream(in, NULL, &error);
+    g_object_unref(in);
+    if(!pixbuf) {
+        return 1;
+    }
+    
+    if(obj->set) {
+        obj->set(obj, pixbuf, UI_IMAGE_OBJECT_TYPE);
+        g_object_unref(pixbuf);
+    } else {
+        obj->value = pixbuf;
+    }
+          
+    return 0;
+}
+
 void ui_image_ref(UIIMAGE img) {
     g_object_ref(img);
 }

mercurial