Java保存原始JPEG没有损失

Pit*_*ger 2 java image-processing

如下图所示,我将第一张图像作为原始JPEG图像.第二张图像用于缓冲图像,然后使用质量为1.0的http://www.lac.inpe.br/JIPCookbook/6040-howto-compressimages.jsp进行保存.静止图像尺寸变小,失真很小.是否可以将图像保存到其质量中?请注意,保存图像不仅仅是一个样本测试.添加文本后,我以最高质量保存它,这也会丢失信息.

在此输入图像描述

在此输入图像描述

dac*_*cwe 6

不要重绘图像并保存.只需复制原始字节!


我怀疑你当前的代码是这样的:

BufferedImage image = ImageIO.read(new File("my.jpg");
ImageIO.write(image, "jpg", new File("copy.jpg"));
Run Code Online (Sandbox Code Playgroud)

每次重复此操作时,图像都会稍微改变(如您所见,您总是会失去一些质量).如果您只想复制JPEG /文件而不更改任何内容,可以执行以下操作(从此页面http://www.exampledepot.com/egs/java.io/CopyFile.html):

void copy(File src, File dst) throws IOException {
    InputStream in = new FileInputStream(src);
    OutputStream out = new FileOutputStream(dst);

    // Transfer bytes from in to out
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.close();
}
Run Code Online (Sandbox Code Playgroud)