import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
public class ImageIo {
public static void main(String args[])
{
try {
new ImageIo().compressImage(new File("/home/aurum/pngtest900kb.png"),"pngtest900kb.png");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String compressImage(File cardImage, String fileName) throws IOException {
File compressedImageFile = new File("/home/aurum/pngtest900kb.png");
InputStream is = new FileInputStream(cardImage);
OutputStream os = new FileOutputStream(compressedImageFile);
float quality = 0.3f;
if(cardImage.length() > 2048) {
quality = 0.2f;
}
BufferedImage image = ImageIO.read(is);
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpg");
ImageWriter writer = (ImageWriter) writers.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
writer.setOutput(ios);
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(quality);
writer.write(null, new IIOImage(image, null, null), param);
is.close();
os.close();
ios.close();
writer.dispose();
return compressedImageFile.getName();
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
public class ImageIo {
public static void main(String args[])
{
try {
new ImageIo().compressImage(new File("/home/aurum/pngtest900kb.png"),"pngtest900kb.png");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String compressImage(File cardImage, String fileName) throws IOException {
File compressedImageFile = new File("/home/aurum/pngtest900kb.png");
InputStream is = new FileInputStream(cardImage);
OutputStream os = new FileOutputStream(compressedImageFile);
float quality = 0.3f;
if(cardImage.length() > 2048) {
quality = 0.2f;
}
BufferedImage image = ImageIO.read(is);
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpg");
ImageWriter writer = (ImageWriter) writers.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
writer.setOutput(ios);
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(quality);
writer.write(null, new IIOImage(image, null, null), param);
is.close();
os.close();
ios.close();
writer.dispose();
return compressedImageFile.getName();
}
}