<div>Sebastien,</div>
<div>&nbsp;</div>
<div>Thanks for submitting the bug report. It was pretty easy to fix.</div>
<div><a href="http://public.kitware.com/Bug/view.php?id=6159">http://public.kitware.com/Bug/view.php?id=6159</a></div>
<div>&nbsp;</div>
<div>Please update itkTIFFImageIO.cxx and see if it fixes your problem. If it does, I&#39;ll close the bug.</div>
<div>&nbsp;</div>
<div>Bill</div>
<div><br><br>&nbsp;</div>
<div class="gmail_quote">On Dec 13, 2007 1:17 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">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" target="_blank">http://public.kitware.com/Bug/my_view_page.php</a><br><font color="#888888"><br>Bill</font> 
<div>
<div></div>
<div class="Wj3C7c"><br><br>
<div class="gmail_quote">On Dec 13, 2007 12:56 PM, Sébastien Fricker &lt;<a href="mailto:sebastien.fricker@phaseview.net" target="_blank">sebastien.fricker@phaseview.net </a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">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><br>-----Original Message-----<br>From: insight-users-bounces+sebastien.fricker=<a href="mailto:phaseview.net@itk.org" target="_blank">phaseview.net@itk.org</a><br>[mailto:<a href="mailto:insight-users-bounces+sebastien.fricker=phaseview.net@itk.org" target="_blank">
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" target="_blank">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" target="_blank">
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" target="_blank">
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" target="_blank">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></div></div></blockquote></div><br>