merge

Sun, 13 Apr 2025 22:33:11 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 13 Apr 2025 22:33:11 +0200
changeset 564
5c08f99b2a09
parent 563
6fc93c3b91c9 (diff)
parent 562
88ed463e5433 (current diff)
child 565
54a97e543389

merge

--- a/ui/gtk/image.c	Sat Apr 12 19:21:15 2025 +0200
+++ b/ui/gtk/image.c	Sun Apr 13 22:33:11 2025 +0200
@@ -341,6 +341,27 @@
     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(bytes);
+    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);
 }
--- a/ui/ui/image.h	Sat Apr 12 19:21:15 2025 +0200
+++ b/ui/ui/image.h	Sun Apr 13 22:33:11 2025 +0200
@@ -85,6 +85,7 @@
 UIEXPORT UIWIDGET ui_imageviewer_set_useradjustable(UIWIDGET w, UiBool set);
 
 UIEXPORT int ui_image_load_file(UiGeneric *obj, const char *path);
+UIEXPORT int ui_image_load_data(UiGeneric *obj, const void *imgdata, size_t size);
 
 UIEXPORT void ui_image_ref(UIIMAGE img);
 UIEXPORT void ui_image_unref(UIIMAGE img);

mercurial