merge

Thu, 17 Apr 2025 10:27:49 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Thu, 17 Apr 2025 10:27:49 +0200
changeset 567
4ee3e4ce03ad
parent 566
0e0e9035c6c7 (current diff)
parent 565
54a97e543389 (diff)
child 568
797b73c2c883

merge

--- 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);
 }
--- a/ui/ui/image.h	Thu Apr 17 10:25:41 2025 +0200
+++ b/ui/ui/image.h	Thu Apr 17 10:27:49 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