Hi Lorenzo,
which GeoTools version are you using?

I have just quickly tried with GeoTools master your very same code also
adding a final piece of code doing a rewrite on disk:

writer = new GeoTiffWriter(new File("d:/download/writeback.tif"), null);
writer.write(grid, null);
writer.dispose();

and I didn't see any error and the image looks as the input one.


Please,let me know.
Regards,
Daniele



On Mon, Feb 22, 2021 at 9:36 PM Lorenzo Di Giacomo <loridi...@gmail.com>
wrote:

> Hi, i have a problem that i dont understand if GEOTOOLS handles (maybe
> with some HINTS), basically i read a TIFF image then i serialized it :
>
>
>
>
>
>
>
>
>
>
> *public static byte[] gridToBytes(GridCoverage2D grid) throws IOException
> { ByteArrayOutputStream baos = new ByteArrayOutputStream(); GeoTiffWriter
> writer = new GeoTiffWriter(baos, null); writer.write(grid,
> null); writer.dispose(); byte[] bytes =
> baos.toByteArray(); baos.flush(); baos.close(); return bytes;}*
>
> Then i deserialize it with:
>
>
>
>
>
>
>
>
>
>
>
>
>
> *    public static GridCoverage2D bytesToGrid(byte[] bytes) throws
> IOException {        ByteArrayInputStream bais = new
> ByteArrayInputStream(bytes);        GeoTiffReader reader = null;        try
> {            Hints hints = new
> Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE);
> reader = new GeoTiffReader(bais, hints);            GridCoverage2D grid =
> reader.read(null);            bais.close();            return grid;
> } catch (IllegalArgumentException e) {            throw new
> IOException("Error on deserialization on tile");        }    }*
>
> It works fine with some images, but i found some tiff (i have 150 of
> those, uploaded one for you if you wanna try:
> https://mega.nz/file/qJlEyTIQ#jgCE5pwfD5Y_AiUj2hSLTvTIS0lZ4CSm5D0Vb0eTk7U
> )
> that gaves this error on deserialization:
>
>
>
>
>
>
>
>
> *Caused by: java.lang.IllegalArgumentException: bandOffsets.length is
> wrong! at
> javax.imageio.ImageTypeSpecifier$Interleaved.<init>(ImageTypeSpecifier.java:286)
> at
> javax.imageio.ImageTypeSpecifier.createInterleaved(ImageTypeSpecifier.java:399)
> at
> it.geosolutions.imageio.plugins.tiff.TIFFDecompressor.getRawImageTypeSpecifier(TIFFDecompressor.java:1027)
> at
> it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.getImageTypes(TIFFImageReader.java:1359)
> at
> org.geotools.coverage.grid.io.AbstractGridCoverage2DReader.setLayout(AbstractGridCoverage2DReader.java:1167)
> at org.geotools.gce.geotiff.GeoTiffReader.getHRInfo(GeoTiffReader.java:342)*
> And, using gdal i get:
>
> *Warning 1: TIFFReadDirectory:Sum of Photometric type-related color
> channels and ExtraSamples doesn't match SamplesPerPixel. Defining non-color
> channels as ExtraSamples.*
> GDAL handle it putting this band (should bhe the 4th band, alpha channel)
> as ExtraSamples.
> How can I walk-around with GeoTools to read the image back? Are there any
> HINTS that i could use?
>
> Thanks
>
> _______________________________________________
> GeoTools-Devel mailing list
> GeoTools-Devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>


-- 
Regards,
Daniele Romagnoli
==
GeoServer Professional Services from the experts! Visit http://goo.gl/it488V
for more information.
==

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:      +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE
2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si
precisa che ogni circostanza inerente alla presente email (il suo
contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è
riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il
messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra
operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is
addressed and may contain information that is privileged, confidential or
otherwise protected from disclosure. We remind that - as provided by
European Regulation 2016/679 “GDPR” - copying, dissemination or use of this
e-mail or the information herein by anyone other than the intended
recipient is prohibited. If you have received this email by mistake, please
notify us immediately by telephone or e-mail.
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to