[SCIFIO] T1dSavingImagePlanes breaks when changing from PNG to TIFF

Curtis Rueden ctrueden at wisc.edu
Wed Dec 3 12:26:13 CST 2014


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/26b7182f/attachment-0002.html>


More information about the SCIFIO mailing list