[SCIFIO] T1dSavingImagePlanes breaks when changing from PNG to TIFF
Michael Ellis
michael.ellis at dsuk.biz
Wed Dec 3 12:40:12 CST 2014
Curtis, many thanks.
Whilst I’m on the subject of TIFF I experimented with using the TIFF specific reader/parser.
Our TIFF files use the PAGE_NAME TIFF TIFF tag to give a name to each of the channel names. Is this information accessible through the SCIFIO?
Many thanks — Michael Ellis
On 3 Dec 2014, at 18:26, Curtis Rueden <ctrueden at wisc.edu> wrote:
> Hi Michael,
>
> > I’m curious though because I didn’t think PNG files could handle
> > anything other than 2D images.
>
> SCIFIO writes the APNG format [1] when there are multiple planes.
>
> > So I try to open the SCIFIOTutorial.png in ImageJ and I see only a
> > single plane image.
>
> Standard PNG readers (including ImageJ 1.x's built-in PNG reader) will read only the first plane. Did you try with File > Import > Image... which uses SCIFIO when opening?
>
> > I change SCIFIOTutorial.png to SCIFIOTutorial.tif and run the program.
> > I get the following exception:
> >
> > Exception in thread "main" io.scif.FormatException: Buffer too small
> > (got 2500, expected 12500).
>
> Thanks for the report. I can confirm this bug. I filed an issue for it:
> https://github.com/scifio/scifio/issues/236
>
> > So how do I save a X,Y,Channels image in TIFF format with SCIFIO?
>
> Once that issue is resolved, things should work!
>
> Regards,
> Curtis
>
> [1] https://en.wikipedia.org/wiki/APNG
>
> On Wed, Dec 3, 2014 at 5:20 AM, Michael Ellis <michael.ellis at dsuk.biz> wrote:
> T1dSavingImagePlanes saves a fake image “8bit-signed&pixelType=int8&lengths=50,50,3,5,7&axes=X,Y,Z,Channel,Time.fake” as a png file.
>
> I run the program and it completes without errors.
>
> I’m curious though because I didn’t think PNG files could handle anything other than 2D images. So I try to open the SCIFIOTutorial.png
> in ImageJ and I see only a single plane image. There are no warnings or errors when saving the file to suggest that there is any loss of fidelity. Is
> that the intention?
>
> Anyway, I know TIFF files can support multiple channels, so I change SCIFIOTutorial.png to SCIFIOTutorial.tif and run the program. I get the following exception:
>
> Exception in thread "main" io.scif.FormatException: Buffer too small (got 2500, expected 12500).
> at io.scif.util.FormatTools.checkBufferSize(FormatTools.java:665)
> at io.scif.util.FormatTools.checkPlaneForWriting(FormatTools.java:610)
> at io.scif.AbstractWriter.checkParams(AbstractWriter.java:121)
> at io.scif.formats.TIFFFormat$Writer.savePlane(TIFFFormat.java:1291)
> at io.scif.formats.TIFFFormat$Writer.writePlane(TIFFFormat.java:1399)
> at io.scif.AbstractWriter.savePlane(AbstractWriter.java:168)
> at io.scif.AbstractWriter.savePlane(AbstractWriter.java:159)
> at io.scif.tutorials.core.T1dSavingImagePlanes.main(T1dSavingImagePlanes.java:75)
>
> Now this is most unexpected, because I would have assumed the TIFF format was able to store the images with at least the same fidelity as PNG.
>
> OK I know TIFF can save files of 3 dimensions, so I change the fake images to “8bit-signed&pixelType=int8&lengths=50,50,7&axes=X,Y,Channel.fake”
>
> Again I get and exception.
>
> OK, how about a 2D image, “8bit-signed&pixelType=int8&lengths=50,50&axes=X,Y.fake”?
>
> And that finally works.
>
> So how do I save a X,Y,Channels image in TIFF format with SCIFIO?
>
> Thanks for any help.
>
> — Michael Ellis
> Digital Scientific UK Ltd.
>
>
>
>
> _______________________________________________
> SCIFIO mailing list
> SCIFIO at scif.io
> http://scif.io/mailman/listinfo/scifio
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://scif.io/pipermail/scifio/attachments/20141203/e7cafb39/attachment-0002.html>
More information about the SCIFIO
mailing list