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

Reply via email to