aboutsummaryrefslogtreecommitdiffstats
path: root/image.c
diff options
context:
space:
mode:
Diffstat (limited to 'image.c')
-rw-r--r--image.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/image.c b/image.c
new file mode 100644
index 0000000..ebfb778
--- /dev/null
+++ b/image.c
@@ -0,0 +1,35 @@
+/* See LICENSE file for copyright and license details. */
+#include "common.h"
+
+GdkPixbuf *transformed_image = NULL;
+
+static void
+forget_transformed_image(void)
+{
+ if (transformed_image) {
+ g_object_unref(transformed_image);
+ transformed_image = NULL;
+ }
+}
+
+GdkPixbuf *
+get_image(void)
+{
+ struct file *file = get_file();
+ if (!file || !file->image) {
+ forget_transformed_image();
+ return NULL;
+ }
+ return transformed_image ? transformed_image : file->image;
+}
+
+GdkPixbuf *
+get_original_image(void)
+{
+ struct file *file = get_file();
+ if (!file || !file->image) {
+ forget_transformed_image();
+ return NULL;
+ }
+ return file->image;
+}