libcvd-members
[Top][All Lists]
Advanced

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

[libcvd-members] libcvd Makefile.in cvd/image_io.h cvd/internal/...


From: Edward Rosten
Subject: [libcvd-members] libcvd Makefile.in cvd/image_io.h cvd/internal/...
Date: Wed, 20 Apr 2011 11:32:58 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        11/04/20 11:32:58

Modified files:
        .              : Makefile.in 
        cvd            : image_io.h 
        cvd/internal   : load_and_save.h 
        cvd/internal/io: bmp.h cvdimage.h fits.h jpeg.h png.h pnm_grok.h 
                         save_postscript.h text.h tiff.h 

Log message:
        Uniform image load/save code now complete.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/Makefile.in?cvsroot=libcvd&r1=1.96&r2=1.97
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/image_io.h?cvsroot=libcvd&r1=1.46&r2=1.47
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/load_and_save.h?cvsroot=libcvd&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/bmp.h?cvsroot=libcvd&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/cvdimage.h?cvsroot=libcvd&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/fits.h?cvsroot=libcvd&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/jpeg.h?cvsroot=libcvd&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/png.h?cvsroot=libcvd&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/pnm_grok.h?cvsroot=libcvd&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/save_postscript.h?cvsroot=libcvd&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/text.h?cvsroot=libcvd&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/tiff.h?cvsroot=libcvd&r1=1.13&r2=1.14

Patches:
Index: Makefile.in
===================================================================
RCS file: /cvsroot/libcvd/libcvd/Makefile.in,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -b -r1.96 -r1.97
--- Makefile.in 1 Apr 2011 17:18:20 -0000       1.96
+++ Makefile.in 20 Apr 2011 11:32:58 -0000      1.97
@@ -98,6 +98,7 @@
                        pnm_src/pnm_grok.o                              \
                        pnm_src/bmp.o                                   \
                        pnm_src/bmp_read.o                              \
+                       pnm_src/bmp_write.o                             \
                        pnm_src/cvdimage.o                              \
                        pnm_src/fits.o                                  \
                        pnm_src/fitswrite.o                             \

Index: cvd/image_io.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/image_io.h,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -b -r1.46 -r1.47
--- cvd/image_io.h      1 Apr 2011 17:18:20 -0000       1.46
+++ cvd/image_io.h      20 Apr 2011 11:32:58 -0000      1.47
@@ -307,7 +307,7 @@
                  case ImageType::TIFF: Internal::writeImage<PixelType, 
TIFF::tiff_writer>(im,o, p); break;
          #endif
          case ImageType::FITS: Internal::writeImage<PixelType, 
FITS::writer>(im,o, p); break;
-         case ImageType::BMP: BMP::writeBMP(im, o); break;
+         case ImageType::BMP:  Internal::writeImage<PixelType, 
BMP::Writer>(im, o, p); break;
          case ImageType::TXT: Internal::writeImage<PixelType, 
TEXT::writer>(im, o, p); break;
          case ImageType::PS:   Internal::writeImage<PixelType, PS::writer>(im, 
o, p); break;
          case ImageType::EPS:   Internal::writeImage<PixelType, 
PS::eps_writer>(im, o, p); break;

Index: cvd/internal/load_and_save.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/load_and_save.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- cvd/internal/load_and_save.h        1 Apr 2011 17:18:20 -0000       1.21
+++ cvd/internal/load_and_save.h        20 Apr 2011 11:32:58 -0000      1.22
@@ -312,11 +312,18 @@
                                ImageWriter w(os, im.size(), 
CVD::PNM::type_name<OutgoingPixel>::name(), p);
                                Image<OutgoingPixel> row(ImageRef(im.size().x, 
1));
 
+                               if(w.top_row_first)
                                for(int r=0; r < im.size().y; r++)
                                {
                                        CVD::Pixel::ConvertPixels<Pixel, 
OutgoingPixel>::convert(im[r], row.data(), im.size().x);
                                        w.write_raw_pixel_line(row.data());
                                }
+                               else
+                                       for(int r=im.size().y-1; r >= 0; r--)
+                                       {
+                                               
CVD::Pixel::ConvertPixels<Pixel, OutgoingPixel>::convert(im[r], row.data(), 
im.size().x);
+                                               
w.write_raw_pixel_line(row.data());
+                                       }
                        }
                };
 
@@ -325,8 +332,14 @@
                        static void write(std::ostream& os, const 
SubImage<Pixel>& im, const std::map<std::string, Parameter<> >& p)
                        {
                                ImageWriter w(os, im.size(), 
CVD::PNM::type_name<Pixel>::name(), p);
+
+                               if(w.top_row_first)
                                for(int r=0; r < im.size().y; r++)
                                        w.write_raw_pixel_line(im[r]);
+                               else
+                                       for(int r=im.size().y-1; r >= 0; r--)
+                                               w.write_raw_pixel_line(im[r]);
+
                        }
                };
 

Index: cvd/internal/io/bmp.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/bmp.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- cvd/internal/io/bmp.h       1 Apr 2011 17:18:21 -0000       1.9
+++ cvd/internal/io/bmp.h       20 Apr 2011 11:32:58 -0000      1.10
@@ -60,7 +60,7 @@
                        private:
                                std::auto_ptr<ReadPimpl> t;
                };
-/*
+
                class WritePimpl;
                class Writer
                {
@@ -76,6 +76,8 @@
                                        typedef byte type;
                                };              
 
+                               static const int top_row_first=0;
+
                        protected:
                                std::auto_ptr<WritePimpl> t; 
                };
@@ -95,61 +97,7 @@
                {
                        typedef Rgb<byte> type;
                };
-*/
-
-               void writeBMPHeader(unsigned int width, unsigned int height, 
unsigned int channels, std::ostream& out);
-
-               template <class T, int Channels> struct BMPWriter;
-               template <class T> struct BMPWriter<T,1> {
-                       static void write(const BasicImage<T>& im, 
std::ostream& out) {
-                               writeBMPHeader(im.size().x, im.size().y, 1, 
out);
-                               int rowSize = im.size().x;
-                               if (rowSize % 4)
-                                       rowSize += 4 - (rowSize % 4);
-                               Internal::simple_vector<byte> rowbuf(rowSize);
-                               for (int r=im.size().y-1; r>=0; r--) {
-                                       
Pixel::ConvertPixels<T,byte>::convert(im[r], &rowbuf[0], im.size().x);
-                                       out.write((const char*)&rowbuf[0], 
rowSize);
-                               }
-                       }
-               };
-               template <> struct BMPWriter<byte,1> {
-                       static void write(const BasicImage<byte>& im, 
std::ostream& out) {
-                               writeBMPHeader(im.size().x, im.size().y, 1, 
out);
-                               int pad = (im.size().x % 4) ? (4 - (im.size().x 
% 4)) : 0;
-                               char zeros[4]={0,0,0,0};
-                               for (int r=im.size().y-1; r>=0; r--) {
-                                       out.write((const char*)im[r], 
im.size().x);
-                                       if (pad)
-                                               out.write(zeros,pad);
-                               }
-                       }
-               };
-
-               template <class T> struct BMPWriter<T,3> {
-                       static void write(const BasicImage<T>& im, 
std::ostream& out) {
-                               writeBMPHeader(im.size().x, im.size().y, 3, 
out);
-                               int rowSize = im.size().x*3;
-                               if (rowSize % 4)
-                                       rowSize += 4 - (rowSize % 4);
-                               Internal::simple_vector<byte> rowbuf(rowSize);
-                               for (int r=im.size().y-1; r>=0; r--) {
-                                       Pixel::ConvertPixels<T,Rgb<byte> 
>::convert(im[r], (Rgb<byte>*)&rowbuf[0], im.size().x);
-                                       for (int c=0; c<im.size().x*3; c+=3) {
-                                               byte tmp = rowbuf[c];
-                                               rowbuf[c] = rowbuf[c+2];
-                                               rowbuf[c+2] = tmp;
-                                       }
-                                       out.write((const char*)&rowbuf[0], 
rowSize);
-                               }
-                       }
-               };
-               template <class T> struct BMPWriterChooser {  enum { channels = 
1}; };
-               template <class T> struct BMPWriterChooser<Rgb<T> > { enum { 
channels = 3}; };
 
-               template <class T> void writeBMP(const BasicImage<T>& im, 
std::ostream& out) {
-                       
BMPWriter<T,BMPWriterChooser<T>::channels>::write(im,out);
-               }
        }
 }
 

Index: cvd/internal/io/cvdimage.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/cvdimage.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- cvd/internal/io/cvdimage.h  1 Apr 2011 17:18:21 -0000       1.4
+++ cvd/internal/io/cvdimage.h  20 Apr 2011 11:32:58 -0000      1.5
@@ -98,6 +98,7 @@
                                typedef byte type;
                        };              
 
+                       static const int top_row_first=1;
                protected:
                        std::auto_ptr<WritePimpl> t; 
        };

Index: cvd/internal/io/fits.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/fits.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- cvd/internal/io/fits.h      1 Apr 2011 17:18:21 -0000       1.6
+++ cvd/internal/io/fits.h      20 Apr 2011 11:32:58 -0000      1.7
@@ -185,6 +185,7 @@
                                typedef typename 
ComponentMapper<Incoming>::type type;
                        };              
 
+                       static const int top_row_first=1;
                private:
                        WritePimpl* t; 
        };

Index: cvd/internal/io/jpeg.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/jpeg.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- cvd/internal/io/jpeg.h      1 Apr 2011 17:18:21 -0000       1.9
+++ cvd/internal/io/jpeg.h      20 Apr 2011 11:32:58 -0000      1.10
@@ -82,6 +82,7 @@
                                typedef byte type;
                        };              
 
+                       static const int top_row_first=1;
                protected:
                        std::auto_ptr<WritePimpl> t; 
        };

Index: cvd/internal/io/png.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/png.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- cvd/internal/io/png.h       1 Apr 2011 17:18:21 -0000       1.12
+++ cvd/internal/io/png.h       20 Apr 2011 11:32:58 -0000      1.13
@@ -147,6 +147,8 @@
                {               
                        typedef typename ComponentMapper<Incoming>::type type;
                };              
+               static const int top_row_first=1;
+
        private:
 
                template<class P> void write_line(const P*);

Index: cvd/internal/io/pnm_grok.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/pnm_grok.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- cvd/internal/io/pnm_grok.h  1 Apr 2011 17:18:21 -0000       1.12
+++ cvd/internal/io/pnm_grok.h  20 Apr 2011 11:32:58 -0000      1.13
@@ -100,6 +100,8 @@
                                                                                
                 std::numeric_limits<Element>::is_integer &&
                                                                                
                 std::numeric_limits<Element>::digits <= 8>::type type;
                        };              
+                       static const int top_row_first=1;
+
                private:
                        std::auto_ptr<pnm_writer> p;
        };

Index: cvd/internal/io/save_postscript.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/save_postscript.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- cvd/internal/io/save_postscript.h   21 Mar 2010 19:02:03 -0000      1.3
+++ cvd/internal/io/save_postscript.h   20 Apr 2011 11:32:58 -0000      1.4
@@ -52,6 +52,7 @@
                                typedef byte type;
                        };              
 
+                       static const int top_row_first=0;
                protected:
                        std::auto_ptr<WritePimpl> t; 
        };
@@ -87,6 +88,7 @@
                                typedef typename 
writer::Outgoing<Incoming>::type type;
                        };              
 
+                       static const int top_row_first=1;
                protected:
                        std::auto_ptr<WritePimpl> t; 
        };

Index: cvd/internal/io/text.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/text.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- cvd/internal/io/text.h      1 Apr 2011 17:18:21 -0000       1.3
+++ cvd/internal/io/text.h      20 Apr 2011 11:32:58 -0000      1.4
@@ -79,6 +79,7 @@
                                typedef double type;
                        };              
 
+                       static const int top_row_first=1;
                private:
                        std::auto_ptr<WritePimpl> t; 
        };

Index: cvd/internal/io/tiff.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/tiff.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- cvd/internal/io/tiff.h      1 Apr 2011 17:18:21 -0000       1.13
+++ cvd/internal/io/tiff.h      20 Apr 2011 11:32:58 -0000      1.14
@@ -171,6 +171,7 @@
                                typedef typename 
ComponentMapper<Incoming>::type type;
                        };              
 
+                       static const int top_row_first=1;
                private:
                        std::auto_ptr<TIFFWritePimpl> t; 
        };



reply via email to

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