X-Git-Url: https://git.donarmstrong.com/?p=xournal.git;a=blobdiff_plain;f=src%2Fxo-image.c;fp=src%2Fxo-image.c;h=708bffad78eb8c0d506dde2baf6613497b3f4162;hp=884bf2301ef2d4fa53f16d0a3bdccf3b8b0f4401;hb=8d98916e20dcf6899c33d2b6cda293e2c4011fdd;hpb=9f09269d8918dfa930543f4a15de4e7276719e5e diff --git a/src/xo-image.c b/src/xo-image.c index 884bf23..708bffa 100644 --- a/src/xo-image.c +++ b/src/xo-image.c @@ -20,7 +20,6 @@ #include #include #include -#include #include "xournal.h" #include "xo-support.h" @@ -29,15 +28,15 @@ // create pixbuf from buffer, or return NULL on failure GdkPixbuf *pixbuf_from_buffer(const gchar *buf, gsize buflen) { - GInputStream *istream; + GdkPixbufLoader *loader; GdkPixbuf *pixbuf; - GError *error; - error = NULL; - - istream = g_memory_input_stream_new_from_data (buf, buflen, NULL); - pixbuf = gdk_pixbuf_new_from_stream(istream, NULL, &error); - g_input_stream_close(istream, NULL, &error); + loader = gdk_pixbuf_loader_new(); + gdk_pixbuf_loader_write(loader, buf, buflen, NULL); + gdk_pixbuf_loader_close(loader, NULL); + pixbuf = gdk_pixbuf_loader_get_pixbuf(loader); + g_object_ref(pixbuf); + g_object_unref(loader); return pixbuf; }