Update of /cvsroot/ufraw/ufraw In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24343
Modified Files: wb_extract.pl wb_presets.c Log Message: Add WB and Kelvin presets for the FUJIFILM X-E1. Update wb_extract.pl to support that camera. Patch by Luca Capello. Index: wb_presets.c =================================================================== RCS file: /cvsroot/ufraw/ufraw/wb_presets.c,v retrieving revision 1.271 retrieving revision 1.272 diff -u -d -r1.271 -r1.272 --- wb_presets.c 1 Jan 2014 06:00:24 -0000 1.271 +++ wb_presets.c 5 Jan 2014 13:45:10 -0000 1.272 @@ -2053,6 +2053,48 @@ { "FUJIFILM", "X100", "9100K", 0, { 1.8940, 1, 1.0464, 0 } }, { "FUJIFILM", "X100", "10000K", 0, { 1.9503, 1, 1.0298, 0 } }, + /* FUJIFILM X-E1 Firmware Version 1.01 */ + // The manual calls it "Direct sunlight". + { "FUJIFILM", "X-E1", Daylight, 0, { 1.821192, 1, 1.804636, 0 } }, + // The manual calls it "Shade", but exiftool shows it as "Cloudy". + { "FUJIFILM", "X-E1", Shade, 0, { 2.039735, 1, 1.572848, 0 } }, + { "FUJIFILM", "X-E1", DaylightFluorescent, 0, { 2.321192, 1, 1.566225, 0 } }, + { "FUJIFILM", "X-E1", WarmWhiteFluorescent, 0, { 1.966887, 1, 1.837748, 0 } }, + { "FUJIFILM", "X-E1", CoolWhiteFluorescent, 0, { 1.847682, 1, 2.317881, 0 } }, + { "FUJIFILM", "X-E1", Incandescent, 0, { 1.165563, 1, 2.920530, 0 } }, + { "FUJIFILM", "X-E1", Underwater, 0, { 1.821192, 1, 1.804636, 0 } }, + { "FUJIFILM", "X-E1", "2500K", 0, { 0.980132, 1, 3.427152, 0 } }, + { "FUJIFILM", "X-E1", "2550K", 0, { 1.009934, 1, 3.334437, 0 } }, + { "FUJIFILM", "X-E1", "2650K", 0, { 1.059603, 1, 3.165563, 0 } }, + { "FUJIFILM", "X-E1", "2700K", 0, { 1.082781, 1, 3.086093, 0 } }, + { "FUJIFILM", "X-E1", "2800K", 0, { 1.125828, 1, 2.950331, 0 } }, + { "FUJIFILM", "X-E1", "2850K", 0, { 1.145695, 1, 2.887417, 0 } }, + { "FUJIFILM", "X-E1", "2950K", 0, { 1.182119, 1, 2.771523, 0 } }, + { "FUJIFILM", "X-E1", "3000K", 0, { 1.201987, 1, 2.718543, 0 } }, + { "FUJIFILM", "X-E1", "3100K", 0, { 1.235099, 1, 2.622517, 0 } }, + { "FUJIFILM", "X-E1", "3200K", 0, { 1.271523, 1, 2.536424, 0 } }, + { "FUJIFILM", "X-E1", "3300K", 0, { 1.304636, 1, 2.456954, 0 } }, + { "FUJIFILM", "X-E1", "3400K", 0, { 1.334437, 1, 2.387417, 0 } }, + { "FUJIFILM", "X-E1", "3600K", 0, { 1.397351, 1, 2.261589, 0 } }, + { "FUJIFILM", "X-E1", "3700K", 0, { 1.430464, 1, 2.205298, 0 } }, + { "FUJIFILM", "X-E1", "3800K", 0, { 1.460265, 1, 2.152318, 0 } }, + { "FUJIFILM", "X-E1", "4000K", 0, { 1.523179, 1, 2.062914, 0 } }, + { "FUJIFILM", "X-E1", "4200K", 0, { 1.582781, 1, 1.980132, 0 } }, + { "FUJIFILM", "X-E1", "4300K", 0, { 1.612583, 1, 1.943709, 0 } }, + { "FUJIFILM", "X-E1", "4500K", 0, { 1.672185, 1, 1.874172, 0 } }, + { "FUJIFILM", "X-E1", "4800K", 0, { 1.758278, 1, 1.784768, 0 } }, + { "FUJIFILM", "X-E1", "5000K", 0, { 1.814570, 1, 1.731788, 0 } }, + { "FUJIFILM", "X-E1", "5300K", 0, { 1.897351, 1, 1.658940, 0 } }, + { "FUJIFILM", "X-E1", "5600K", 0, { 1.973510, 1, 1.596026, 0 } }, + { "FUJIFILM", "X-E1", "5900K", 0, { 2.049669, 1, 1.536424, 0 } }, + { "FUJIFILM", "X-E1", "6300K", 0, { 2.149007, 1, 1.466887, 0 } }, + { "FUJIFILM", "X-E1", "6700K", 0, { 2.238411, 1, 1.403974, 0 } }, + { "FUJIFILM", "X-E1", "7100K", 0, { 2.324503, 1, 1.350993, 0 } }, + { "FUJIFILM", "X-E1", "7700K", 0, { 2.447020, 1, 1.274834, 0 } }, + { "FUJIFILM", "X-E1", "8300K", 0, { 2.556291, 1, 1.211921, 0 } }, + { "FUJIFILM", "X-E1", "9100K", 0, { 2.688742, 1, 1.135762, 0 } }, + { "FUJIFILM", "X-E1", "10000K", 0, { 2.821192, 1, 1.062914, 0 } }, + { "KODAK", "P850 ZOOM", Daylight, 0, { 1.859375, 1, 1.566406, 0 } }, { "KODAK", "P850 ZOOM", Cloudy, 0, { 1.960938, 1, 1.570313, 0 } }, { "KODAK", "P850 ZOOM", Shade, 0, { 2.027344, 1, 1.519531, 0 } }, Index: wb_extract.pl =================================================================== RCS file: /cvsroot/ufraw/ufraw/wb_extract.pl,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- wb_extract.pl 15 Oct 2013 14:30:10 -0000 1.6 +++ wb_extract.pl 5 Jan 2014 13:45:10 -0000 1.7 @@ -30,23 +30,37 @@ my($const_WB); $const_WB = 0; +my($print_fw); +$print_fw = 0; + for my $file (@ARGV) { if ($file eq "-const") { $const_WB = 1; next + } elsif ($file eq "-printfw") { + $print_fw = 1; + next } my ($make, $model, $fw_version, $wbname, $wbfinetune, $wbfinetune_1, $mulred, $mulgreen, $mulblue); $mulgreen = 1; # default value for green balance $wbfinetune = $wbfinetune_1 = 0, $mulred = -1, $mulblue = -1; # avoid warnings about uninitialized vars - open(EXIFTOOL, "exiftool -s -t -Model -CanonModelID -SonyModelID -FirmwareVersion -Software -ColorBalance1 -RedBalance -BlueBalance -WhiteBalance -WBShiftAB -WBBracketValueAB -\"WB_RGGB*\" $file|") + open(EXIFTOOL, "exiftool -s -t -Model -CanonModelID -SonyModelID -FirmwareVersion -Software -ColorBalance1 -RedBalance -BlueBalance -WhiteBalance -WBShiftAB -WBBracketValueAB -\"WB_RGGB*\" -ColorTemperature $file|") or die "can't open $file: $!"; while (my $line = <EXIFTOOL>) { $line =~ /([^\t]+)\t(.*)/ or next; my ($field, $value) = ($1, $2); + # debug: show field + # print $field . "\n"; if ($field eq "Model") { ($make, $model) = split(/ +/, $value); + # exiftool's -Make and -Model are correct, but this should not + # cause any regression + if ($make eq "X-E1") { + $model = $make; + $make = "FUJIFILM"; + } } elsif ($field eq "CanonModelID") { $model = $value; } elsif ($field eq "SonyModelID") { @@ -58,12 +72,16 @@ } elsif ($field eq "ColorBalance1") { # Field for D200 my $mul_unknown; ($mulred, $mulblue, $mulgreen, $mul_unknown) = split(/ +/, $value); - } elsif ($field eq "RedBalance") { # Field for D70 (red) + } elsif ($field eq "RedBalance") { # Field for D70 and X-E1 (red) $mulred = $value; - } elsif ($field eq "BlueBalance") { # Field for D70 (blue) + } elsif ($field eq "BlueBalance") { # Field for D70 and X-E1 (blue) $mulblue = $value; } elsif ($field eq "WhiteBalance") { - $wbname = $value; + if ($model eq "X-E1" && $value eq "Unknown (0x600)") { + $wbname = "Underwater"; + } else { + $wbname = $value; + } } elsif ($field eq "WhiteBalanceFineTune") { $wbfinetune = $value; } elsif ($field eq "WBShiftAB") { @@ -74,6 +92,8 @@ my ($mul_tmp1, $mul_tmp2, $mul_tmp3, $mul_tmp4) = split(/ +/, $value); $mulred = ($mul_tmp1 / $mul_tmp2); $mulblue = ($mul_tmp4 / $mul_tmp3); + } elsif ($field eq "ColorTemperature" && $wbname eq "Kelvin" ) { # Field for X-E1 + $wbname = sprintf "%dK", $value; } elsif ($field =~ /WB_RGGBLevels/) { # Get embedded whitebalance values $field =~ s/^WB_RGGBLevels//; # Truncate for whitebalance-name my ($mul_tmp1, $mul_tmp2, $mul_tmp3, $mul_tmp4) = split(/ +/, $value); @@ -96,12 +116,25 @@ # Fix names for consistency across Nikon cameras (D70 and D2X use "Direct sunlight") $wbname =~ s/^Sunny$/Direct sunlight/; - # printf " /* $make $model Firmware Version $fw_version */\n"; + # Fix names for wb_presets.c + if ($make eq "FUJIFILM") { + if ($model eq "X-E1") { + # The manual calls it "Shade", but exiftool shows it as "Cloudy". + $wbname =~ s/^Cloudy$/Shade/; + } + $wbname =~ s/^Daylight Fluorescent$/DaylightFluorescent/; + $wbname =~ s/^Day White Fluorescent$/WarmWhiteFluorescent/; + $wbname =~ s/^White Fluorescent$/CoolWhiteFluorescent/; + } + + if ($print_fw eq 1) { + printf " /* $make $model Firmware Version $fw_version */\n"; + } # Format and print the line my $result; $result = sprintf " { \"%s\", \"%s\", ", $make, $model; - if ($const_WB eq 1) { + if ($const_WB eq 1 && $wbname !~ "K") { $result .= sprintf "%s, ", $wbname; } else { $result .= sprintf "\"%s\", ", $wbname; ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk _______________________________________________ ufraw-cvs mailing list ufraw-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ufraw-cvs