现在有个问题,就是要用JAVA处理一些JPG或者是PNG的图片,但是这些图片都很精美的那种,分辨率比较高,一般都有几百K,但是我们想在网络上传送这些图,主要是文件大小不能大,并且也不需要效果很精美,只要能看得出大概内容就可以了,也就是质量可以象PHOTOSHOP保存一个差一点质量图片。光用JAVA把原图保存为一个长宽小点的略缩图,这样效果不是很好,因为长宽变了,里面的内容小了很多,模糊了。最好是长宽不要变,图片质量变差。所以有过JAVA处理图片的朋友请帮忙建议一下:如何压缩一下图片质量,目的是让图片文件体积变小
JPEGImageEncoder 做编码时候可以设定参数的。
JPEGEncodeParam.setQuality 即可变压缩比率
谢谢你的回复
你能否给些建议,如何把一个图片处理到体积最小?
如果还能给些在网络上压缩解压图片的建议那更好了
* 保存图像到 JPEG 文件
* @param file 保存的目标文件
* @param image 保存的源图像
* @param quality 保存的 JPEG 图像质量
* @param listener 保存进度监听器
*/
public static void writeJPEG(File file, BufferedImage image, int quality, IIOWriteProgressListener listener) throws
FileNotFoundException, IOException {
Iterator it = ImageIO.getImageWritersBySuffix("jpg");
if (it.hasNext()) {
FileImageOutputStream fileImageOutputStream = new FileImageOutputStream(file);
ImageWriter iw = (ImageWriter) it.next();
ImageWriteParam iwp = iw.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality((float) quality / 100f);
iw.setOutput(fileImageOutputStream);
iw.addIIOWriteProgressListener(listener);
iw.write(null, new IIOImage(image, null, null), iwp);
iw.dispose();
fileImageOutputStream.flush();
fileImageOutputStream.close();
}
}
用GZIP不知道能否压缩图片?
GZIP是不是只能压缩网页?