libcvd-members
[Top][All Lists]
Advanced

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

[libcvd-members] libcvd/cvd image_convert.h


From: Edward Rosten
Subject: [libcvd-members] libcvd/cvd image_convert.h
Date: Sun, 04 Jan 2009 15:50:08 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        09/01/04 15:50:08

Modified files:
        cvd            : image_convert.h 

Log message:
        SubImage for image_conert.
        
        BasicImage prototypes so that wierd-format images can still be 
converted.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/image_convert.h?cvsroot=libcvd&r1=1.12&r2=1.13

Patches:
Index: image_convert.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/image_convert.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- image_convert.h     28 Feb 2008 00:27:21 -0000      1.12
+++ image_convert.h     4 Jan 2009 15:50:06 -0000       1.13
@@ -32,7 +32,7 @@
   // The most general case: one row at a time
 
   template <class From, class To, class Conv=typename 
Pixel::DefaultConversion<From,To>::type, int 
both_pod=Internal::is_POD<From>::is_pod && Internal::is_POD<To>::is_pod> struct 
ConvertImage {
-    static void convert(const BasicImage<From>& from, BasicImage<To>& to) {
+    static void convert(const SubImage<From>& from, SubImage<To>& to) {
       for (int r=0; r<from.size().y; r++)
        Pixel::ConvertPixels<From,To,Conv>::convert(from[r], to[r], 
from.size().x);
     };
@@ -40,29 +40,36 @@
 
   // The blat case: memcpy all data at once 
   template <class T> struct ConvertImage<T,T,Pixel::GenericConversion<T,T>,1> {
-    static void convert(const BasicImage<T>& from, BasicImage<T>& to) {
+    static void convert(const SubImage<T>& from, SubImage<T>& to) {
       memcpy(to.data(), from.data(), from.totalsize() * sizeof(T));
     };
   };
 
   template <> struct ConvertImage<Rgb<byte>, byte, Pixel::CIE<Rgb<byte>, 
byte>, 1> {
-      static void convert(const BasicImage<Rgb<byte> >& from, 
BasicImage<byte>& to);
+      static void convert(const SubImage<Rgb<byte> >& from, SubImage<byte>& 
to);
   };
   
-  template<class Conv, class C, class D> void convert_image(const 
BasicImage<C>& from, BasicImage<D>& to)
+  template<class Conv, class C, class D> void convert_image(const SubImage<C>& 
from, SubImage<D>& to)
   {
     if (from.size() != to.size())
       throw Exceptions::Image::IncompatibleImageSizes(__FUNCTION__);
     ConvertImage<C,D,Conv>::convert(from, to);
   }
   
-  template<template <class From, class To> class Conv, class C, class D> void 
convert_image(const BasicImage<C>& from, BasicImage<D>& to)
+  template<template <class From, class To> class Conv, class C, class D> void 
convert_image(const SubImage<C>& from, SubImage<D>& to)
   {
     if (from.size() != to.size())
       throw Exceptions::Image::IncompatibleImageSizes(__FUNCTION__);
     ConvertImage<C,D,Conv<C,D> >::convert(from, to);
   }
 
+  template<class C, class D> void convert_image(const SubImage<C>& from, 
SubImage<D>& to)
+  {
+      if (from.size() != to.size())
+         throw Exceptions::Image::IncompatibleImageSizes(__FUNCTION__);
+      ConvertImage<C,D>::convert(from, to);
+  }
+
   template<class C, class D> void convert_image(const BasicImage<C>& from, 
BasicImage<D>& to)
   {
       if (from.size() != to.size())
@@ -76,14 +83,14 @@
   /// @param Conv The conversion to use
   /// @param from The image to convert from
   /// @ingroup gImageIO
-  template<class D, class Conv, class C> Image<D> convert_image(const 
BasicImage<C>& from)
+  template<class D, class Conv, class C> Image<D> convert_image(const 
SubImage<C>& from)
   {
     Image<D> to(from.size());
     convert_image<Conv>(from, to);
     return to;
   }
     
-  template<class D, template <class From, class To> class Conv, class C> 
Image<D> convert_image(const BasicImage<C>& from)
+  template<class D, template <class From, class To> class Conv, class C> 
Image<D> convert_image(const SubImage<C>& from)
   {
     Image<D> to(from.size());
     convert_image<Conv>(from, to);
@@ -95,7 +102,7 @@
   /// @param C The source image pixel type
   /// @param from The image to convert from
   /// @ingroup gImageIO
-  template<class D, class C> Image<D> convert_image(const BasicImage<C>& from)
+  template<class D, class C> Image<D> convert_image(const SubImage<C>& from)
   {
     Image<D> to(from.size());
     convert_image(from, to);




reply via email to

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