Author: post
Date: 2009-08-24 23:19:01 +0200 (Mon, 24 Aug 2009)
New Revision: 120

Modified:
   RawSpeed/DngDecoder.cpp
Log:
Preliminary support of Ricoh DNG images.

Modified: RawSpeed/DngDecoder.cpp
===================================================================
--- RawSpeed/DngDecoder.cpp     2009-08-20 17:28:12 UTC (rev 119)
+++ RawSpeed/DngDecoder.cpp     2009-08-24 21:19:01 UTC (rev 120)
@@ -331,11 +331,20 @@
           if (blackarrayv[i*2+1])
             black = MIN(black, blackbase + blackarrayv[i*2] / 
blackarrayv[i*2+1]);
       } else {
-        const guint *blackarray = raw->getEntry(BLACKLEVEL)->getIntArray();
-        if (blackarray[1])
-          black = blackarray[0] / blackarray[1];
-        else 
-          black = 0;
+        TiffEntry* black_entry = raw->getEntry(BLACKLEVEL);
+        if (black_entry->type == TIFF_LONG) {
+          const guint* blackarray = black_entry->getIntArray();
+          if (blackarray[1])
+            black = blackarray[0] / blackarray[1];
+          else 
+            black = 0;
+        } else if (black_entry->type == TIFF_RATIONAL){
+          const guint* blackarray = (const guint*)black_entry->getData();
+          if (blackarray[1])
+            black = blackarray[0] / blackarray[1];
+          else 
+            black = 0;
+        }
       }
     } else {
       black = 0;


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

Reply via email to