Sebastien,<br><br>This looks like a bug to me. I can&#39;t see itkTIFFImageIO closing the file. Also, the write should not silently fail.<br>Please enter a bug report:<br><a href="http://public.kitware.com/Bug/my_view_page.php">
http://public.kitware.com/Bug/my_view_page.php</a><br><br>Bill<br><br><div class="gmail_quote">On Dec 13, 2007 12:56 PM, Sébastien Fricker &lt;<a href="mailto:sebastien.fricker@phaseview.net">sebastien.fricker@phaseview.net
</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Thank you Xabi,<br>I have already tested writing to a different name and it works just fine.
<br>Only when input name == output name do I get a problem: the original file is<br>not modified.<br><br>The part of the code that fails is in Itktiffimageio.cxx, in the<br>TIFFImageIO::InternalWrite function.<br>The problem appears at the following piece of code:
<br><br> &nbsp;TIFF *tif = TIFFOpen(m_FileName.c_str(), &quot;w&quot;);<br> &nbsp;if ( !tif )<br> &nbsp; &nbsp;{<br> &nbsp; &nbsp;itkDebugMacro( &lt;&lt; &quot;Returning&quot; );<br> &nbsp; &nbsp;return;<br> &nbsp; &nbsp;}<br><br>In my case !tif == true because the image was already open at the beginning
<br>of the pipeline.<br><br>Surprisingly it works with BMP images though. Does this mean TIFF files<br>cannot be modified in-place?<br><br>Sebastien<br><div><div></div><div class="Wj3C7c"><br>-----Original Message-----<br>
From: insight-users-bounces+sebastien.fricker=<a href="mailto:phaseview.net@itk.org">phaseview.net@itk.org</a><br>[mailto:<a href="mailto:insight-users-bounces+sebastien.fricker=phaseview.net@itk.org">insight-users-bounces+sebastien.fricker=phaseview.net@itk.org
</a>] On<br>Behalf Of Xabier Artaechevarria Artieda<br>Sent: jeudi 13 décembre 2007 18:21<br>To: <a href="mailto:insight-users@itk.org">insight-users@itk.org</a><br>Subject: Re: [Insight-users] Overwriting TIFF files<br><br>
Hi Sébastien,<br>I think I have done this, sometimes without even realising :(<br>Try writing with a different name to see if that is the &nbsp;problem.<br>Good luck,<br>Xabi<br><br>--<br>Xabier Artaechevarria<br>Cancer Imaging Laboratory
<br>Centre for Applied Medical Research<br><a href="http://www.cima.es" target="_blank">www.cima.es</a><br><br><br><br>Sébastien Fricker &lt;<a href="mailto:sebastien.fricker@phaseview.net">sebastien.fricker@phaseview.net
</a>&gt; ha escrito:<br><br>&gt; Dear ITK users,<br>&gt;<br>&gt; I wrote a program that opens an image, transforms it via the Resample<br>image<br>&gt; filter and writes the result to the original image file (see code fragment
<br>&gt; below).<br>&gt;<br>&gt; This works fine when I use BMP images.<br>&gt;<br>&gt; It does not work when I use TIF images: the original image is not<br>modified.<br>&gt; What happens is that the writer at the end does not do anything:
<br>apparently<br>&gt; it cannot open the image for writing, probably because the same image was<br>&gt; open for reading at the beginning of the pipeline.<br>&gt;<br>&gt;<br>&gt;<br>&gt; Is this a bug or am I doing something wrong?
<br>&gt;<br>&gt; How can I modify a TIF file in-place?<br>&gt;<br>&gt;<br>&gt;<br>&gt; Thanks for any hint.<br>&gt;<br>&gt;<br>&gt;<br>&gt; Sebastien<br>&gt;<br>&gt;<br>&gt;<br>&gt; CODE FRAGMENT:<br>&gt;<br>&gt;<br>&gt;<br>
&gt; --------------------------------------------------------<br>&gt;<br>&gt;<br>&gt;<br>&gt; //DEFINE IMAGE TYPES<br>&gt;<br>&gt; const unsigned int Dimension = 2;<br>&gt;<br>&gt; typedef unsigned short PixelType;<br>&gt;
<br>&gt; typedef double InternalPixelType;<br>&gt;<br>&gt; typedef itk::Image&lt; PixelType, Dimension &gt; ImageType;<br>&gt;<br>&gt; typedef itk::Image&lt; InternalPixelType, Dimension &gt; InternalImageType;<br>&gt;<br>
&gt;<br>&gt;<br>&gt; //READ INPUT IMAGE<br>&gt;<br>&gt; typedef itk::ImageFileReader&lt; ImageType &nbsp;&gt; ImageReaderType;<br>&gt;<br>&gt; ImageReaderType::Pointer &nbsp;inputImageReader &nbsp;= ImageReaderType::New();<br>&gt;<br>&gt;
<br>&gt;<br>&gt; inputImageReader-&gt;SetFileName( fileName );<br>&gt;<br>&gt; inputImageReader-&gt;Update();<br>&gt;<br>&gt; ImageType::Pointer inputImage = inputImageReader-&gt;GetOutput();<br>&gt;<br>&gt;<br>&gt;<br>&gt;
<br>&gt;<br>&gt; //RESAMPLE IMAGE<br>&gt;<br>&gt; //Define filter, create one instance<br>&gt;<br>&gt; typedef itk::ResampleImageFilter&lt; InternalImageType, InternalImageType &gt;<br>&gt; ResampleFilterType;<br>&gt;<br>
&gt; ResampleFilterType::Pointer resampler = ResampleFilterType::New();<br>&gt;<br>&gt;<br>&gt;<br>&gt; resampler-&gt;SetInput( inputImage );<br>&gt;<br>&gt;<br>&gt;<br>&gt; //MORE CODE HERE TO SET RESAMPLER PARAMETERS …<br>
&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; //CAST IMAGE TO OUTPUT TYPE<br>&gt;<br>&gt; typedef itk::CastImageFilter&lt;<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;InternalImageType,<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ImageType &gt; CastFilterType;
<br>&gt;<br>&gt; CastFilterType::Pointer &nbsp;caster = &nbsp;CastFilterType::New();<br>&gt;<br>&gt;<br>&gt;<br>&gt; caster-&gt;SetInput( resampler-&gt;GetOutput() );<br>&gt;<br>&gt;<br>&gt;<br>&gt; //WRITE OUTPUT FILE<br>&gt;<br>&gt; typedef itk::ImageFileWriter&lt; ImageType &gt; &nbsp;WriterType;
<br>&gt;<br>&gt; WriterType::Pointer &nbsp; &nbsp; &nbsp;writer = &nbsp;WriterType::New();<br>&gt;<br>&gt;<br>&gt;<br>&gt; writer-&gt;SetFileName( fileName );<br>&gt;<br>&gt; writer-&gt;SetInput( caster-&gt;GetOutput() );<br>&gt;<br>&gt; writer-&gt;Update();
<br>&gt;<br>&gt;<br>&gt;<br>&gt; --------------------------------------------------------<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br><br><br><br>----------------------------------------------------------------<br>
Este mensaje ha sido enviado desde <a href="https://webmail.unav.es" target="_blank">https://webmail.unav.es</a><br><br>_______________________________________________<br>Insight-users mailing list<br><a href="mailto:Insight-users@itk.org">
Insight-users@itk.org</a><br><a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br><br>_______________________________________________<br>Insight-users mailing list
<br><a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br><a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br></div></div></blockquote>
</div><br>