<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 5.50.4207.2601" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2>Hi,</FONT></DIV>
<DIV><FONT size=2>Thank you very much. The vtkTIFF16Writer class is working 
perfectly. However, why the need for a new class? The changes are limited and it 
should be easy to just incorporate them inside the vtkTIFFWriter class with 
automatic checking of the data type!!</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>Thanks again,</FONT></DIV>
<DIV><FONT size=2>Asad</FONT></DIV>
<DIV><FONT size=2></FONT><BR>&nbsp;</DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=hhiraki@lab.nig.ac.jp href="mailto:hhiraki@lab.nig.ac.jp">HIRAKI 
  Hideaki</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=tarifa@rpi.edu 
  href="mailto:tarifa@rpi.edu">Asad A. Abu-Tarif</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=vtkusers@public.kitware.com 
  href="mailto:vtkusers@public.kitware.com">vtkusers@public.kitware.com</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Sunday, October 29, 2000 8:25 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [vtkusers] Writing Image 
  Slices with unsigned short data type</DIV>
  <DIV><BR></DIV>At Sat 28 Oct 2000 13:33:19 +0200, Sebastien BARRE 
  wrote:<BR>&gt;At 28/10/00 06:07, Asad A. Abu-Tarif 
  wrote:<BR>&gt;<BR>&gt;&gt;Is there any Image writer that takes 
  vtkStructuredPoints as its input and <BR>&gt;&gt;writes the image slices to 
  standart image format(s)? I found vtkBMPWriter <BR>&gt;&gt;and vtkTIFFWriter, 
  however, these deal only with unsigned char input type. <BR>&gt;&gt;My data is 
  2 bytes long (unsigned short) and hence I need some other image 
  <BR>&gt;&gt;writer.<BR>&gt;<BR>&gt;BMP won't support unsigned short 
  anyway.<BR>&gt;The TIFF format does, theoritically. I do remember that the 
  TIFF reader is <BR>&gt;able to read 16 bits data, si I guess the writer does 
  the same. Try this <BR>&gt;out, and test the result with Photoshop for example 
  (which is able to <BR>&gt;handle 16 bits).<BR><BR>As vtkTIFFWriter didn't 
  support 16 bits data, I made vtkTIFF16Writer <BR>tweaking vtkTIFFWriter. The 
  modifications are shown below. I hope <BR>this helps.<BR><BR><BR>% diff 
  imaging/vtkTIFFWriter.h local/vtkTIFF16Writer.h<BR>42c42<BR>&lt; // .NAME 
  vtkTIFFWriter - write out structured points as a TIFF file<BR>---<BR>&gt; // 
  .NAME vtkTIFF16Writer - write out structured points as a TIFF 
  file<BR>46,47c46,47<BR>&lt; #ifndef __vtkTIFFWriter_h<BR>&lt; #define 
  __vtkTIFFWriter_h<BR>---<BR>&gt; #ifndef __vtkTIFF16Writer_h<BR>&gt; #define 
  __vtkTIFF16Writer_h<BR>52c52<BR>&lt; class VTK_EXPORT vtkTIFFWriter : public 
  vtkImageWriter<BR>---<BR>&gt; class VTK_EXPORT vtkTIFF16Writer : public 
  vtkImageWriter<BR>55,56c55,56<BR>&lt;&nbsp;&nbsp; static vtkTIFFWriter 
  *New();<BR>&lt;&nbsp;&nbsp; 
  vtkTypeMacro(vtkTIFFWriter,vtkImageWriter);<BR>---<BR>&gt;&nbsp;&nbsp; static 
  vtkTIFF16Writer *New();<BR>&gt;&nbsp;&nbsp; 
  vtkTypeMacro(vtkTIFF16Writer,vtkImageWriter);<BR>59,62c59,62<BR>&lt;&nbsp;&nbsp; 
  vtkTIFFWriter() {};<BR>&lt;&nbsp;&nbsp; ~vtkTIFFWriter() 
  {};<BR>&lt;&nbsp;&nbsp; vtkTIFFWriter(const vtkTIFFWriter&amp;) 
  {};<BR>&lt;&nbsp;&nbsp; void operator=(const vtkTIFFWriter&amp;) 
  {};<BR>---<BR>&gt;&nbsp;&nbsp; vtkTIFF16Writer() {};<BR>&gt;&nbsp;&nbsp; 
  ~vtkTIFF16Writer() {};<BR>&gt;&nbsp;&nbsp; vtkTIFF16Writer(const 
  vtkTIFF16Writer&amp;) {};<BR>&gt;&nbsp;&nbsp; void operator=(const 
  vtkTIFF16Writer&amp;) {};<BR><BR><BR>% diff imaging/vtkTIFFWriter.cxx 
  local/vtkTIFF16Writer.cxx<BR>42c42<BR>&lt; #include 
  "vtkTIFFWriter.h"<BR>---<BR>&gt; #include "vtkTIFF16Writer.h"<BR>55c55<BR>&lt; 
  vtkTIFFWriter* vtkTIFFWriter::New()<BR>---<BR>&gt; vtkTIFF16Writer* 
  vtkTIFF16Writer::New()<BR>58c58<BR>&lt;&nbsp;&nbsp; vtkObject* ret = 
  vtkObjectFactory::CreateInstance("vtkTIFFWriter");<BR>---<BR>&gt;&nbsp;&nbsp; 
  vtkObject* ret = 
  vtkObjectFactory::CreateInstance("vtkTIFF16Writer");<BR>61c61<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp; 
  return (vtkTIFFWriter*)ret;<BR>---<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; return 
  (vtkTIFF16Writer*)ret;<BR>66c66<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp; 
  vtkGenericWarningMacro ("vtkTIFFWriter expects sizeof(vtkTiffLong) to be 
  4,"<BR>---<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; vtkGenericWarningMacro 
  ("vtkTIFF16Writer expects sizeof(vtkTiffLong) to be 
  4,"<BR>70c76<BR>&lt;&nbsp;&nbsp; return new 
  vtkTIFFWriter;<BR>---<BR>&gt;&nbsp;&nbsp; return new 
  vtkTIFF16Writer;<BR>285c291<BR>&lt; void 
  vtkTIFFWriter::WriteFileHeader(ofstream *file, vtkImageData 
  *cache)<BR>---<BR>&gt; void vtkTIFF16Writer::WriteFileHeader(ofstream *file, 
  vtkImageData *cache)<BR>357c363<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  short depth = 8;<BR>---<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; short 
  depth = 16;<BR>362c368<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  vtkTiffUnsignedLong depth = 8 + (8 &lt;&lt; 
  16);<BR>---<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkTiffUnsignedLong 
  depth = 16 + (16 &lt;&lt; 16);<BR>421c427<BR>&lt;&nbsp;&nbsp; vtkTiffLong 
  stripByteCounts = width*height*bpp;<BR>---<BR>&gt;&nbsp;&nbsp; vtkTiffLong 
  stripByteCounts = width*height*bpp*2;<BR>469c475<BR>&lt;&nbsp;&nbsp; short 
  depth = 8;<BR>---<BR>&gt;&nbsp;&nbsp; short depth = 16;<BR>483c489<BR>&lt; 
  void vtkTIFFWriter::WriteFile(ofstream *file, vtkImageData 
  *data,<BR>---<BR>&gt; void vtkTIFF16Writer::WriteFile(ofstream *file, 
  vtkImageData *data,<BR>500,501c506,507<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp; case 
  VTK_UNSIGNED_CHAR:<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rowLength = 
  sizeof(unsigned char); <BR>---<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; case 
  VTK_UNSIGNED_SHORT:<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rowLength = 
  sizeof(unsigned short); 
  <BR>504c510<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  vtkErrorMacro("TIFFWriter only accepts unsigned char 
  scalars!");<BR>---<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  vtkErrorMacro("TIFF16Writer only accepts unsigned short 
scalars!");<BR></BLOCKQUOTE></BODY></HTML>