java – 以编程方式减少JPEG文件大小

为任何无知道歉,但我以前从未使用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);
上一篇:java-如何将二进制数据转换为图像?


下一篇:java-我的批处理jpg大小调整器可用于彩色图像,但是灰度级的图像会变色