Skip to content

Commit

Permalink
Issue geosolutions-it#317 : Writing compressed tiled TIFF is broken
Browse files Browse the repository at this point in the history
# Liste des mots clés de titre de commit (version courte -> résultat long)
# i <slug>-<num> -> Récupération de l'issue Jira (Issue #<slug>-<num> : <titre_de_lissue>)
# t <titre> -> Technique : <titre>
# f <titre> -> Fix : <titre>
# ty <titre> -> Typo : <titre>
# d <titre> -> Doc : <titre>
# s <titre> -> Sécurité : <titre>
# u <titre> -> UI : <titre>
# c <titre> -> CI : <titre>
# dr <titre> -> Draft: <titre>
# [skip ci] en début de titre de commit permet de ne pas déclencher de build
#
# Chaque ligne de description ajouté sera préfixé automatiquement d'une puce.
#
# Pour la saisie de temps automatique lors de l'écriture d'un commit le format est le suivant :
# /spend <options>
#
# NB : Plusieurs /spend peuvent être défini sur un même commit
#
# Les options sont :
# - Temps en heure (ie 0.25). Obligatoire
# - Numéro de redmine. Facultatif si le commit porte sur un redmine avec la syntaxe courte ou longue.
# - Catégorie de l'imputation. Facultatif. Récupération par les premières lettres en format court, si non défini Développement sera utilisé
# - Date de l'imputation au format ISO8601 (ie 2021-02-23)
#
# NB : L'imputation n'est pas bloquante pour le message de commit si une erreur survient.
  • Loading branch information
Frederic JURY committed Dec 11, 2024
1 parent 1e99450 commit cde140f
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 2 deletions.
6 changes: 6 additions & 0 deletions plugin/tiff/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>it.geosolutions.imageio-ext</groupId>
<artifactId>imageio-ext-library</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.airlift</groupId>
<artifactId>aircompressor</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@ public int compress(byte[] destData, int srcOffset, int srcLength,
int destOffset, int destLength) {
deflater.setInput(srcData, srcOffset, srcLength);
deflater.finish();
return deflater.deflate(destData, destOffset, destLength);
final int written = deflater.deflate(destData, destOffset, destLength);
deflater.reset();
return written;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,29 @@ public void writeZSTD() throws IOException {
writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
writeParam.setCompressionType("ZSTD");
writer.setOutput(new FileImageOutputStream(outputFile));
writer.write(image);
writer.write(null, new IIOImage(image, null, null), writeParam);
writer.dispose();
TIFFReadTest.assertImagesEqual(image, TIFFReadTest.readTiff(outputFile));
}

@Test
public void writeDeflatedTilled() throws IOException {
final File inputFile =TestData.file(this, "test.tif");
final File outputFile = TestData.temp(this, "testw.tif",true);
TIFFImageReader reader = (TIFFImageReader) new TIFFImageReaderSpi()
.createReaderInstance();
reader.setInput(new FileImageInputStream(inputFile));
BufferedImage image = reader.read(0);
final TIFFImageWriter writer= (TIFFImageWriter) new TIFFImageWriterSpi().createWriterInstance();
final ImageWriteParam writeParam= new TIFFImageWriteParam(Locale.getDefault());
writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
writeParam.setTilingMode(ImageWriteParam.MODE_EXPLICIT);
writeParam.setTiling(8, 8,0,0);
writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
writeParam.setCompressionType("Deflate");
writeParam.setCompressionQuality(1);
writer.setOutput(new FileImageOutputStream(outputFile));
writer.write(null, new IIOImage(image, null, null), writeParam);
writer.dispose();
TIFFReadTest.assertImagesEqual(image, TIFFReadTest.readTiff(outputFile));
}
Expand Down

0 comments on commit cde140f

Please sign in to comment.