1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.imaging.formats.png;
19
20 import static org.junit.jupiter.api.Assertions.assertNotNull;
21 import static org.junit.jupiter.api.Assertions.assertTrue;
22
23 import java.awt.image.BufferedImage;
24 import java.io.File;
25 import java.nio.file.Files;
26
27 import org.apache.commons.imaging.ImageFormats;
28 import org.apache.commons.imaging.Imaging;
29 import org.apache.commons.imaging.ImagingTestConstants;
30 import org.apache.commons.imaging.internal.Debug;
31 import org.apache.commons.io.FilenameUtils;
32 import org.junit.jupiter.api.Test;
33
34 public class PngMultipleRoundtripTest extends AbstractPngTest {
35
36 @Test
37 public void test() throws Exception {
38 final String imagesFolderPath = FilenameUtils.separatorsToSystem(ImagingTestConstants.TEST_DATA_SOURCE_FOLDER + "/images/png/3");
39 final File imagesFolder = new File(imagesFolderPath);
40 assertTrue(imagesFolder.exists() && imagesFolder.isDirectory());
41
42 final File[] files = imagesFolder.listFiles();
43 for (final File file : files) {
44 final File imageFile = file;
45 if (!imageFile.isFile()) {
46 continue;
47 }
48 if (!imageFile.getName().toLowerCase().endsWith(".png")) {
49 continue;
50 }
51
52 Debug.debug();
53 Debug.debug("imageFile", imageFile);
54
55 File lastFile = imageFile;
56 for (int j = 0; j < 10; j++) {
57 final BufferedImage image = Imaging.getBufferedImage(lastFile);
58 assertNotNull(image);
59
60 final File tempFile = Files.createTempFile(imageFile.getName() + "." + j + ".", ".png").toFile();
61 Debug.debug("tempFile", tempFile);
62
63 Imaging.writeImage(image, tempFile, ImageFormats.PNG);
64
65 lastFile = tempFile;
66 }
67 }
68 }
69
70 }