Hi

Find below a patch which adds auto-rotation of proof images based on image
EXIF information.  It is a revision of a proof-of-concept patch I did up for
gqview 2.0.4 which, for well documented reasons, didn't get anywhere after
submission.  The patch below is against geeqie 1.0.

The proof auto-rotation feature is controlled by a new setting in the
"convenience" section of the image preferences dialog.  This way the
existing behaviour is still available for those who want to use it.

I find this new feature very useful when preparing proofing sheets and I
suspect others would too.  Please consider this for inclusion in geeqie.

Regards
  jonathan

diff -ru --unidirectional-new-file geeqie-1.0-orig/src/options.c 
geeqie-1.0/src/options.c
--- geeqie-1.0-orig/src/options.c       2010-02-18 07:51:19.000000000 +1030
+++ geeqie-1.0/src/options.c    2010-04-02 20:36:46.448672632 +1030
@@ -66,6 +66,7 @@
        options->image.dither_quality = GDK_RGB_DITHER_NORMAL;
        options->image.enable_read_ahead = TRUE;
        options->image.exif_rotate_enable = TRUE;
+       options->image.exif_proof_rotate_enable = TRUE;
        options->image.fit_window_to_image = FALSE;
        options->image.limit_autofit_size = FALSE;
        options->image.limit_window_size = TRUE;
diff -ru --unidirectional-new-file geeqie-1.0-orig/src/options.h 
geeqie-1.0/src/options.h
--- geeqie-1.0-orig/src/options.h       2010-02-18 07:51:19.000000000 +1030
+++ geeqie-1.0/src/options.h    2010-04-02 20:36:17.742672675 +1030
@@ -50,6 +50,7 @@
        /* image */
        struct {
                gboolean exif_rotate_enable;
+               gboolean exif_proof_rotate_enable;
                guint scroll_reset_method;
                gboolean fit_window_to_image;
                gboolean limit_window_size;
diff -ru --unidirectional-new-file geeqie-1.0-orig/src/preferences.c 
geeqie-1.0/src/preferences.c
--- geeqie-1.0-orig/src/preferences.c   2010-02-18 07:51:19.000000000 +1030
+++ geeqie-1.0/src/preferences.c        2010-04-02 20:41:25.949672731 +1030
@@ -285,6 +285,7 @@
                
        options->update_on_time_change = c_options->update_on_time_change;
        options->image.exif_rotate_enable = c_options->image.exif_rotate_enable;
+       options->image.exif_proof_rotate_enable = 
c_options->image.exif_proof_rotate_enable;
 
        options->duplicates_similarity_threshold = 
c_options->duplicates_similarity_threshold;
 
@@ -1309,6 +1310,9 @@
 
        pref_checkbox_new_int(group, _("Auto rotate image using Exif 
information"),
                              options->image.exif_rotate_enable, 
&c_options->image.exif_rotate_enable);
+
+       pref_checkbox_new_int(group, _("Auto rotate proofs using Exif 
information"),
+                             options->image.exif_proof_rotate_enable, 
&c_options->image.exif_proof_rotate_enable);
 }
 
 /* windows tab */
diff -ru --unidirectional-new-file geeqie-1.0-orig/src/print.c 
geeqie-1.0/src/print.c
--- geeqie-1.0-orig/src/print.c 2010-02-18 07:51:19.000000000 +1030
+++ geeqie-1.0/src/print.c      2010-04-02 20:48:31.690672852 +1030
@@ -2189,6 +2189,7 @@
        gdouble icon_w, icon_h;
        gdouble scale;
        gboolean success = TRUE;
+       GdkPixbuf *rotated = NULL;
 
        if (pw->proof_columns < 1 || pw->proof_rows < 1)
                {
@@ -2202,6 +2203,11 @@
 
        pixbuf = image_loader_get_pixbuf(il);
 
+       if (options->image.exif_proof_rotate_enable == TRUE) {
+               rotated = pixbuf_apply_orientation(pixbuf, 
il->fd->exif_orientation);
+               pixbuf = rotated;
+       }
+
        w = gdk_pixbuf_get_width(pixbuf);
        h = gdk_pixbuf_get_height(pixbuf);
 


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel

Reply via email to