diff options
author | N-R-K <79544946+N-R-K@users.noreply.github.com> | 2022-01-02 02:28:19 +0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-02 02:28:19 +0600 |
commit | e839638156b5d2443fed1ce49786c2788f6205aa (patch) | |
tree | 18ba956e9c95e4dfdc8242bfd6a14bcb292c29a2 | |
parent | e777adf98534394ca005a1ca541696b06c791aa6 (diff) |
fix: jpeg exif orientation on Imlib2 v1.7.5 (#188)
since Imlib2 v1.7.5, it is capable of parsing exif data on jpeg files
and auto orienting them. this caused nsxiv to rotate the image twice.
Closes: https://github.com/nsxiv/nsxiv/issues/187
-rw-r--r-- | image.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -439,7 +439,11 @@ bool img_load(img_t *img, const fileinfo_t *file) imlib_image_set_changes_on_disk(); -#if HAVE_LIBEXIF +/* since v1.7.5, Imlib2 can parse exif orientation from jpeg files. + * this version also happens to be the first one which defines the + * IMLIB2_VERSION macro. + */ +#if HAVE_LIBEXIF && !defined(IMLIB2_VERSION) exif_auto_orientate(file); #endif @@ -452,6 +456,10 @@ bool img_load(img_t *img, const fileinfo_t *file) if (STREQ(fmt, "webp")) img_load_webp(img, file); #endif +#if HAVE_LIBEXIF && defined(IMLIB2_VERSION) + if (!STREQ(fmt, "jpeg") && !STREQ(fmt, "jpg")) + exif_auto_orientate(file); +#endif } img->w = imlib_image_get_width(); img->h = imlib_image_get_height(); |