libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd/pnm_src png.cc


From: Edward Rosten
Subject: [libcvd-members] libcvd/pnm_src png.cc
Date: Fri, 05 Nov 2010 15:32:41 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        10/11/05 15:32:41

Modified files:
        pnm_src        : png.cc 

Log message:
        Added macro based verbose mode to PNG loading.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/png.cc?cvsroot=libcvd&r1=1.13&r2=1.14

Patches:
Index: png.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/png.cc,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- png.cc      5 Nov 2010 15:09:52 -0000       1.13
+++ png.cc      5 Nov 2010 15:32:40 -0000       1.14
@@ -53,10 +53,8 @@
 // Implementation of PNGPimpl
 //
 
-
 class CVD::PNG::PNGPimpl
 {
-               
        public:
                template<class C> void read_pixels(C*);
                PNGPimpl(std::istream& in);
@@ -96,8 +94,29 @@
        return my_size;
 }
 
+#ifdef CVD_INTERNAL_VERBOSE_PNG
+       #include <map>
 
-#define LOG(X) do{ cerr << X; }while(0)
+       #define LOG(X) do{ cerr << X; }while(0)
+
+       static string lookup_color_type(int i)
+       {
+               map<int, string> m;
+               #define ADD(X) m[X] = #X
+               ADD(PNG_COLOR_TYPE_GRAY);
+               ADD(PNG_COLOR_TYPE_GRAY_ALPHA);
+               ADD(PNG_COLOR_TYPE_PALETTE);
+               ADD(PNG_COLOR_TYPE_RGB);
+               ADD(PNG_COLOR_TYPE_RGB_ALPHA);
+               ADD(PNG_COLOR_MASK_PALETTE);
+               ADD(PNG_COLOR_MASK_COLOR);
+               ADD(PNG_COLOR_MASK_ALPHA);
+
+               return m[i];
+       }
+#else
+       #define LOG(X)
+#endif
 
 template<class P> void PNGPimpl::read_pixels(P* data)
 {
@@ -174,6 +193,16 @@
 
        png_get_IHDR(png_ptr, info_ptr, &w, &h, &depth, &colour, &interlace, 
&dummy, &dummy);
        
+       LOG("w         = " << w << endl);
+       LOG("h         = " << h << endl);
+       LOG("depth     = " << depth << endl);
+       LOG("colour    = " << colour<< ": " << lookup_color_type(colour) << 
endl);
+       LOG("  palette = " << (colour & PNG_COLOR_MASK_PALETTE) << endl);
+       LOG("  color   = " << (colour & PNG_COLOR_MASK_COLOR) << endl);
+       LOG("  alpha   = " << (colour & PNG_COLOR_MASK_ALPHA) << endl);
+       LOG("interlace = " << interlace<< endl);
+       LOG("channels  = " << (int)png_get_channels(png_ptr, info_ptr) << endl);
+       
        my_size.x = w;
        my_size.y = h;
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]