[Insight-developers] One possible framework for Image I/O...

Parag Chandra chandra@cs.unc.edu
Sun, 17 Dec 2000 16:03:38 -0500


This is a multi-part message in MIME format.

------=_NextPart_000_0037_01C06842.EAAB9EE0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,
I have checked in a number of files that are part of an image I/O =
framework we are developing here at UNC. For anyone that is interested =
in I/O matters and this candidate framework, I suggest as a starting =
point the following article on Pluggable Object Factories at C++ Report:

http://www.creport.com/html/from_pages/view_recent_articles_c.cfm?Article=
ID=3D1520

My own article, ImageIO.html (in the documents directory of the =
repository), then describes how to leverage this concept for file I/O.

Please note that before checking in these new files, I performed a CVS =
checkout in a new directory at 1:45 PM on 12/17. I was unable to build =
the existing code successfully on any platform other than VisualC++ =
(Linux, SunOS, SGI all fail), and so I am unable to verify that my new =
files are cross-platform compatible with respect to the latest state of =
the repository. Therefore, I have refrained from making these new files =
part of the build process for the time being, and have not modified any =
of the CMakeLists. So I don't anticipate my changes to cause any =
problems, but please let me know as soon as possible if they do in fact =
break something; I'll be checking e-mail frequently while on vacation =
for the next three weeks.

Below is a list of all the new files I added, along w/ very brief =
descriptions of the classes:

Under Code/Common:
itkMaker.h
itkMaker.txx - pluggable object factory base class. templated over key =
type and object type
itkFileIOCommon.h
itkFileIOCommon.cxx
itkFileIO.h=20
itkFileIO.cxx - image i/o base class. does little more than define an =
interface and an abstract object factory
itkFilterFileIOToImage.h
itkFilterFileIOToImage.txx - base class for transferring image data from =
a FileIO to an Image
itkIntTypes.h - defines the integer types for cross-platform =
compatibility. probably not needed

Under Code/Interfaces/MetaImage:
itkFileIOMetaImageCommon.h
itkFileIOMetaImageCommon.cxx
itkFileIOMetaImage.h
itkFileIOMetaImage.cxx - one concrete implementation of a FileIO and =
factory to illustrate the framework.

Under Testing/Code/Common:
itkFileIOTest.cxx - uses FileIOMetaImage, Image<>, and =
FilterFileIOToImage to illustrate the API presented to developer

Under Documents:
ImageIO1.jpg
ImageIO.html - article describing the framework

I welcome your comments and suggestions, and hope that some of these =
ideas will prove to be useful in the final I/O framework.

Thanks,
-Parag Chandra

------=_NextPart_000_0037_01C06842.EAAB9EE0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4134.600" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#bbc2ba>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>Hello,</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>I have checked in a =
number of files=20
that are part of an&nbsp;image I/O framework we are developing here at=20
UNC.&nbsp;For anyone that is interested in I/O matters and this =
candidate=20
framework, I suggest as a starting point the following article on =
Pluggable=20
Object Factories at C++ Report:</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2><A=20
href=3D"http://www.creport.com/html/from_pages/view_recent_articles_c.cfm=
?ArticleID=3D1520">http://www.creport.com/html/from_pages/view_recent_art=
icles_c.cfm?ArticleID=3D1520</A></FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>My own article, =
ImageIO.html (in the=20
documents directory of the repository), then describes how to leverage =
this=20
concept for file I/O.</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>Please note that before =
checking in=20
these new files, I performed a CVS checkout in a new directory at 1:45 =
PM on=20
12/17.&nbsp;I was unable to build the existing code&nbsp;successfully on =
any=20
platform other than VisualC++ (Linux, SunOS, SGI all fail), and so I am =
unable=20
to verify that my new files are cross-platform compatible with respect =
to the=20
latest state of the repository. Therefore, I have refrained from making =
these=20
new files part of the build process for the time being, and have not =
modified=20
any of the CMakeLists.&nbsp;So I don't anticipate my changes to cause =
any=20
problems, but please let me know as soon as possible if they do in fact =
break=20
something; I'll be checking e-mail frequently while on vacation for the =
next=20
three weeks.</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>Below is a list of all =
the new files=20
I added, along w/ very brief descriptions of the classes:</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>Under=20
Code/Common:<BR>itkMaker.h<BR>itkMaker.txx -&nbsp;pluggable object =
factory base=20
class. templated over key type and object=20
type<BR>itkFileIOCommon.h<BR>itkFileIOCommon.cxx<BR>itkFileIO.h=20
<BR>itkFileIO.cxx - image i/o base class. does little more than define =
an=20
interface and an abstract object=20
factory<BR>itkFilterFileIOToImage.h<BR>itkFilterFileIOToImage.txx - base =
class=20
for transferring image data from a FileIO to an Image<BR>itkIntTypes.h - =
defines=20
the integer types for cross-platform compatibility. probably not=20
needed</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>Under=20
Code/Interfaces/MetaImage:<BR>itkFileIOMetaImageCommon.h<BR>itkFileIOMeta=
ImageCommon.cxx</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000=20
size=3D2>itkFileIOMetaImage.h<BR>itkFileIOMetaImage.cxx - one concrete=20
implementation of a FileIO and factory to illustrate the=20
framework.<BR></DIV></FONT>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>Under=20
Testing/Code/Common:<BR>itkFileIOTest.cxx - uses FileIOMetaImage, =
Image&lt;&gt;,=20
and FilterFileIOToImage to illustrate the API presented to=20
developer</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>Under =
Documents:</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>
<DIV><FONT face=3DArial color=3D#000000 =
size=3D2>ImageIO1.jpg</FONT></DIV>ImageIO.html=20
- article describing the framework</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>I welcome your comments =
and=20
suggestions, and hope that some of these ideas&nbsp;will prove to be =
useful in=20
the final I/O framework.</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>Thanks,</FONT></DIV>
<DIV><FONT face=3DArial color=3D#000000 size=3D2>-Parag=20
Chandra</FONT></DIV></BODY></HTML>

------=_NextPart_000_0037_01C06842.EAAB9EE0--