为任何无知道歉,但我以前从未使用Java中的jpeg图像(更不用说任何类型的图像)了.
假设我想将一个jpeg图像从Web服务发送到客户端.有没有办法通过某种方式操纵图像的颜色配置文件来减少jpeg文件的大小?
我已经能够通过使用称为imgscalr的BufferedImages的简洁工具来缩小图像大小.见here.
我还想要一个颜色比高质量jpeg图像少的jpeg.例如,我希望能够在我的jpeg中使用8位颜色而不是16位颜色.
如果我有来自Java的2D包的BufferedImage,我究竟需要改变什么呢?
解决方法:
减小图像大小的另一种方法是更改压缩级别.您可以使用ImageWriter执行此操作.
ImageWriter writer = null;
Iterator<ImageWriter> iwi = ImageIO.getImageWritersByFormatName("jpg");
if (!iwi.hasNext())
return;
writer = (ImageWriter) iwi.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT) ;
iwp.setCompressionQuality(compressionQuality);
writer.setOutput(...);
writer.write(null, image, iwp);