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
[email protected]
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs