diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2014-03-22 10:50:22 +0100 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2014-03-22 10:50:22 +0100 |
| commit | 302127b03d44277c829642468561ac9e518b7a21 (patch) | |
| tree | 6ade79f755d9ceb3fb6f61a49f1e380fd3296853 | |
| parent | 3559d2c2a32f0eeca441a5d7581064101503d16a (diff) | |
| download | cataract-302127b03d44277c829642468561ac9e518b7a21.tar.xz | |
Make error reporting nicer when referenced image is not available
There were lots of errors reported for the same issue recently, let's
silence some and only report image copy/resize errors.
| -rw-r--r-- | src/generators.c | 38 | ||||
| -rw-r--r-- | src/jpeg-utils.cpp | 2 |
2 files changed, 30 insertions, 10 deletions
diff --git a/src/generators.c b/src/generators.c index f53ca05..c51f24e 100644 --- a/src/generators.c +++ b/src/generators.c @@ -23,6 +23,7 @@ #include <unistd.h> #include <glib.h> +#include <glib/gstdio.h> #include <config.h> @@ -215,6 +216,7 @@ generate_image (TGallerySetup *setup, for (l = g_list_first (setup->design->image_sizes); l; l = g_list_next (l)) { image_size = l->data; + /* TODO: this is too specific */ is_thumbnail = g_ascii_strcasecmp ("thumbnail", image_size->name) == 0; is_preview = g_ascii_strcasecmp ("preview", image_size->name) == 0; is_original = g_ascii_strcasecmp ("original", image_size->name) == 0; @@ -226,6 +228,12 @@ generate_image (TGallerySetup *setup, if (img_src == NULL || img_dst == NULL) continue; + if (g_access (img_src, R_OK) != 0) { + log_error (" Error opening image %s for size \"%s\": %s\n", img_src, image_size->name, g_strerror (errno)); + res = TRUE; + continue; + } + exif_data = exif_data_new_empty (); metadata_apply_overrides (exif_data, setup, path_info, items, item); @@ -235,7 +243,7 @@ generate_image (TGallerySetup *setup, /* Copy the source file */ if ((is_preview && item->preview) || (is_original && image_size->no_resize)) { if (! copy_file (img_src, img_dst)) - log_error ("generate_image: error copying image %s\n", img_src); + log_error (" Error copying image %s to %s\n", img_src, img_dst); } /* Resize image */ else { @@ -269,7 +277,7 @@ generate_image (TGallerySetup *setup, /* Perform resize and strip */ if (! resize_image (img_src, img_dst, img_w, img_h, quality, is_thumbnail, setup->autorotate, exif_data)) - log_error ("generate_image: error resizing image %s\n", img_src); + log_error (" Error resizing image %s\n", img_src); } else { log_error ("generate_image: image %s sizes are %lux%lu\n", img_src, img_w, img_h); } @@ -636,7 +644,8 @@ get_exif_value_cb (gchar **args, gpointer user_data) { ExifData *exif = user_data; - g_return_val_if_fail (exif != NULL, NULL); + if (exif == NULL) + return NULL; g_return_val_if_fail (g_strv_length (args) != 2, NULL); /* incl. trailing NULL */ return get_exif_data (exif, *args); @@ -647,7 +656,8 @@ get_exif_value_fixed_cb (gchar **args, gpointer user_data) { ExifData *exif = user_data; - g_return_val_if_fail (exif != NULL, NULL); + if (exif == NULL) + return NULL; g_return_val_if_fail (g_strv_length (args) != 2, NULL); /* incl. trailing NULL */ return get_exif_data_fixed (exif, *args); @@ -658,7 +668,8 @@ has_exif_key_cb (gchar **args, gpointer user_data) { ExifData *exif = user_data; - g_return_val_if_fail (exif != NULL, FALSE); + if (exif == NULL) + return FALSE; g_return_val_if_fail (g_strv_length (args) != 2, FALSE); /* incl. trailing NULL */ return exif_has_key (exif, *args); @@ -789,22 +800,29 @@ write_html_image (TGallerySetup *setup, s1 = g_path_is_absolute (item->metadata_external_exif) ? g_strdup (item->metadata_external_exif) : g_build_filename (path_info->src_dir, item->metadata_external_exif, NULL); exif = read_exif (s1); if (exif == NULL) - log_error ("write_html_image: error getting exif data from file \"%s\"\n", s1); + log_error (" Error reading exif data from file %s\n", s1); g_free (s1); } /* Get EXIF data from the original image */ if (exif == NULL && img_orig_src) { - exif = read_exif (img_orig_src); + if (g_access (img_orig_src, R_OK) == 0) + exif = read_exif (img_orig_src); + /* -- silently succeed if (exif == NULL) log_error ("write_html_image: error getting exif data from file \"%s\"\n", img_orig_src); + */ } - /* Try destination image instead, though it might have the metadata stripped */ + /* Try destination image instead, though it might have the metadata stripped (as in source file already) */ if (exif == NULL) { - exif = read_exif (img_dst); + if (g_access (img_dst, R_OK) == 0) + exif = read_exif (img_dst); + /* -- silently succeed if (exif == NULL) log_error ("write_html_image: error getting exif data from file \"%s\"\n", img_dst); + */ } - metadata_apply_overrides (exif, setup, path_info, parent_items, item); + if (exif != NULL) + metadata_apply_overrides (exif, setup, path_info, parent_items, item); /* Test for basic EXIF keys presence */ if (exif != NULL && exif_has_key (exif, EXIF_APERTURE) && exif_has_key (exif, EXIF_FOCAL_LENGTH) && diff --git a/src/jpeg-utils.cpp b/src/jpeg-utils.cpp index ada7677..5c0269a 100644 --- a/src/jpeg-utils.cpp +++ b/src/jpeg-utils.cpp @@ -557,7 +557,9 @@ get_image_sizes (const gchar *img, b = MagickPingImage (magick_wand, img); if (b == MagickFalse) { description = MagickGetException (magick_wand, &severity); + /* -- make it silent log_error ("Error reading image info: %s %s %ld %s\n", GetMagickModule(), description); + */ MagickRelinquishMemory(description); return; } |
