1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.imaging.formats.tiff;
19
20 import static org.junit.jupiter.api.Assertions.assertNotNull;
21
22 import java.awt.image.BufferedImage;
23 import java.io.ByteArrayOutputStream;
24 import java.io.File;
25 import java.util.List;
26
27 import org.apache.commons.imaging.ImageInfo;
28 import org.apache.commons.imaging.Imaging;
29 import org.apache.commons.imaging.common.ImageMetadata;
30 import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
31 import org.apache.commons.imaging.internal.Debug;
32 import org.junit.jupiter.api.Test;
33
34 public class TiffRoundtripTest extends TiffBaseTest {
35
36 @Test
37 public void test() throws Exception {
38 final List<File> images = getTiffImages();
39 for (final File imageFile : images) {
40
41 Debug.debug("imageFile", imageFile);
42
43 final ImageMetadata metadata = Imaging.getMetadata(imageFile);
44 assertNotNull(metadata);
45
46 final ImageInfo imageInfo = Imaging.getImageInfo(imageFile);
47 assertNotNull(imageInfo);
48
49 final BufferedImage image = Imaging.getBufferedImage(imageFile);
50 assertNotNull(image);
51
52 final int[] compressions = { TiffConstants.TIFF_COMPRESSION_UNCOMPRESSED, TiffConstants.TIFF_COMPRESSION_LZW,
53 TiffConstants.TIFF_COMPRESSION_PACKBITS, TiffConstants.TIFF_COMPRESSION_DEFLATE_ADOBE };
54 final TiffImageParser tiffImageParser = new TiffImageParser();
55 for (final int compression : compressions) {
56 final byte[] tempFile;
57 final TiffImagingParameters params = new TiffImagingParameters();
58 params.setCompression(compression);
59 try (ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
60 tiffImageParser.writeImage(image, bos, params);
61 tempFile = bos.toByteArray();
62 }
63 final BufferedImage image2 = Imaging.getBufferedImage(tempFile);
64 assertNotNull(image2);
65 }
66 }
67 }
68
69 }