Skip to content

Commit 3bf3c79

Browse files
full example
1 parent 15c8287 commit 3bf3c79

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

  • liquidjava-example/src/main/java/testSuite/classes/image_params_so_error

liquidjava-example/src/main/java/testSuite/classes/image_params_so_error/JpegExporter.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
package testSuite.classes.image_params_so_error;
2+
import java.awt.image.RenderedImage;
3+
import java.io.File;
4+
import java.io.FileOutputStream;
5+
import java.io.IOException;
6+
import java.io.OutputStream;
27
import java.util.Locale;
38

9+
import javax.imageio.IIOImage;
10+
import javax.imageio.ImageIO;
411
import javax.imageio.ImageWriteParam;
12+
import javax.imageio.ImageWriter;
13+
import javax.imageio.stream.ImageOutputStream;
14+
import java.util.Iterator;
515

616
class JpegExporter {
717

@@ -14,4 +24,26 @@ ImageWriteParam setCompressionPreferences() {
1424
}
1525
return param;
1626
}
27+
28+
public String compressImage(File multipartFile, RenderedImage image) throws IOException {
29+
String filePath = System.getProperty("java.io.tmpdir");
30+
File compressedImageFile = new File(filePath);
31+
OutputStream os = new FileOutputStream(compressedImageFile.getName());
32+
String extension = multipartFile.getName().substring(multipartFile.getName().lastIndexOf('.') + 1);
33+
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(extension);
34+
ImageWriter writer = writers.next();
35+
36+
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
37+
writer.setOutput(ios);
38+
39+
ImageWriteParam param = writer.getDefaultWriteParam();
40+
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); // State Refinement Error
41+
param.setCompressionQuality(0.5f);
42+
43+
writer.write(null, new IIOImage(image, null, null), param);
44+
os.close();
45+
ios.close();
46+
writer.dispose();
47+
return String.valueOf(compressedImageFile);
48+
}
1749
}

0 commit comments

Comments
 (0)