[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [libcvd-members] libcvd Makefile.in cvd/image_io.h cvd/internal/...
From: |
Gerhard Reitmayr |
Subject: |
Re: [libcvd-members] libcvd Makefile.in cvd/image_io.h cvd/internal/... |
Date: |
Fri, 22 Apr 2011 15:32:16 +0200 |
Hi Ed,
I get a missing `pnm_src/bmp_write.o' upon linking, is that a missing source
file or an old dependency ?
cheers,
Gerhard
On 20 Apr 2011, at 13:32, Edward Rosten wrote:
> 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 mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/libcvd-members
--
Gerhard Reitmayr
Institute for Computer Graphics and Vision
http://www.icg.tugraz.at/Members/gerhard
tel: ++43 316 873 5082