Revision: 1459
http://geeqie.svn.sourceforge.net/geeqie/?rev=1459&view=rev
Author: zas_
Date: 2009-03-01 17:58:19 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
Enable 'Use profile from image' item of color management menu only if such
profile information is available from image.
Modified Paths:
--------------
trunk/src/image.c
trunk/src/layout.c
Modified: trunk/src/image.c
===================================================================
--- trunk/src/image.c 2009-03-01 17:13:14 UTC (rev 1458)
+++ trunk/src/image.c 2009-03-01 17:58:19 UTC (rev 1459)
@@ -198,6 +198,7 @@
const gchar *screen_file;
guchar *profile = NULL;
guint profile_len;
+ ExifData *exif;
if (imd->cm) return FALSE;
@@ -237,52 +238,61 @@
{
return FALSE;
}
+
+
imd->color_profile_from_image = COLOR_PROFILE_NONE;
- if (imd->color_profile_use_image)
+ exif = exif_read_fd(imd->image_fd);
+
+ if (exif)
{
- ExifData *exif = exif_read_fd(imd->image_fd);
-
- if (exif)
+ gint cs;
+ gchar *interop_index;
+
+ /* ColorSpace == 1 specifies sRGB per EXIF 2.2 */
+ if (!exif_get_integer(exif, "Exif.Photo.ColorSpace", &cs)) cs =
0;
+ interop_index = exif_get_data_as_text(exif,
"Exif.Iop.InteroperabilityIndex");
+
+ if (cs == 1)
{
- profile = exif_get_color_profile(exif, &profile_len);
- if (!profile)
+ if (imd->color_profile_use_image)
{
- gint cs;
- gchar *interop_index;
+ input_type = COLOR_PROFILE_SRGB;
+ input_file = NULL;
+ }
+ imd->color_profile_from_image = COLOR_PROFILE_SRGB;
- /* ColorSpace == 1 specifies sRGB per EXIF 2.2
*/
- if (!exif_get_integer(exif,
"Exif.Photo.ColorSpace", &cs)) cs = 0;
- interop_index = exif_get_data_as_text(exif,
"Exif.Iop.InteroperabilityIndex");
+ DEBUG_1("Found EXIF ColorSpace of sRGB");
+ }
+ if (cs == 2 || (interop_index && !strcmp(interop_index, "R03")))
+ {
+ if (imd->color_profile_use_image)
+ {
+ input_type = COLOR_PROFILE_ADOBERGB;
+ input_file = NULL;
+ }
+ imd->color_profile_from_image = COLOR_PROFILE_ADOBERGB;
- if (cs == 1)
- {
- input_type = COLOR_PROFILE_SRGB;
- input_file = NULL;
- imd->color_profile_from_image =
COLOR_PROFILE_SRGB;
+ DEBUG_1("Found EXIF ColorSpace of AdobeRGB");
+ }
- DEBUG_1("Found EXIF ColorSpace of
sRGB");
- }
- if (cs == 2 || (interop_index &&
!strcmp(interop_index, "R03")))
- {
- input_type = COLOR_PROFILE_ADOBERGB;
- input_file = NULL;
- imd->color_profile_from_image =
COLOR_PROFILE_ADOBERGB;
-
- DEBUG_1("Found EXIF ColorSpace of
AdobeRGB");
- }
-
- g_free(interop_index);
- }
- else
+ g_free(interop_index);
+
+ profile = exif_get_color_profile(exif, &profile_len);
+ if (profile)
+ {
+ if (!imd->color_profile_use_image)
{
- DEBUG_1("Found embedded color profile");
- imd->color_profile_from_image =
COLOR_PROFILE_MEM;
+ g_free(profile);
+ profile = NULL;
}
-
- exif_free_fd(imd->image_fd, exif);
+ DEBUG_1("Found embedded color profile");
+ imd->color_profile_from_image = COLOR_PROFILE_MEM;
}
+
+ exif_free_fd(imd->image_fd, exif);
}
+
if (profile)
{
Modified: trunk/src/layout.c
===================================================================
--- trunk/src/layout.c 2009-03-01 17:13:14 UTC (rev 1458)
+++ trunk/src/layout.c 2009-03-01 17:58:19 UTC (rev 1459)
@@ -444,7 +444,7 @@
item = menu_item_add_check(menu, _("Use profile from _image"),
use_image,
G_CALLBACK(layout_color_menu_use_image_cb), lw);
- gtk_widget_set_sensitive(item, active);
+ gtk_widget_set_sensitive(item, image_profile == COLOR_PROFILE_MEM ||
(image_profile > COLOR_PROFILE_NONE && image_profile < COLOR_PROFILE_FILE));
for (i = COLOR_PROFILE_SRGB; i < COLOR_PROFILE_FILE; i++)
{
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn