Author: post
Date: 2010-01-18 18:24:38 +0100 (Mon, 18 Jan 2010)
New Revision: 187

Modified:
   RawSpeed/DngDecoder.cpp
Log:
DNG: Read black level, even without "BlackLevelDeltaV"

Modified: RawSpeed/DngDecoder.cpp
===================================================================
--- RawSpeed/DngDecoder.cpp     2010-01-14 19:27:56 UTC (rev 186)
+++ RawSpeed/DngDecoder.cpp     2010-01-18 17:24:38 UTC (rev 187)
@@ -368,6 +368,20 @@
     } else {
       black = 0;
     }
+  } else if (raw->hasEntry(BLACKLEVEL)) {
+    // Attempt to read a single value as black
+    TiffEntry *blacklevel = raw->getEntry(BLACKLEVEL);
+    if (blacklevel->count >= 1 && blacklevel->type == TIFF_LONG)
+      black = blacklevel->getInt();
+    if (blacklevel->count >= 1 && blacklevel->type == TIFF_SHORT)
+      black = blacklevel->getShort();
+    if (blacklevel->count >= 1 && blacklevel->type == TIFF_RATIONAL) {
+      const guint* blackarray = (const guint*)blacklevel->getData();
+      if (blackarray[1])
+        black = blackarray[0] / blackarray[1];
+      else
+        black = 0;
+    }
   }
   mRaw->blackLevel = black;
   return mRaw;


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to