[Top][All Lists]
[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;
};
- [libcvd-members] libcvd Makefile.in cvd/image_io.h cvd/internal/...,
Edward Rosten <=