summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2014-03-22 10:50:22 +0100
committerTomas Bzatek <tbzatek@users.sourceforge.net>2014-03-22 10:50:22 +0100
commit302127b03d44277c829642468561ac9e518b7a21 (patch)
tree6ade79f755d9ceb3fb6f61a49f1e380fd3296853 /src
parent3559d2c2a32f0eeca441a5d7581064101503d16a (diff)
downloadcataract-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.
Diffstat (limited to 'src')
-rw-r--r--src/generators.c38
-rw-r--r--src/jpeg-utils.cpp2
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;
}