Java 图像上传分辨率问题

Java 图像上传分辨率问题,java,image,io,Java,Image,Io,当我上传带有图像io的图像时,它正在转换图像的分辨率 我的意思是,我上传一张300 dpi的图像,它可以转换成96 dpi,为什么 我没有使用任何大小调整猜测,您没有复制图像元数据,下面是一个简单的示例,说明如何执行此操作: ImageInputStream iis =ImageIO.createImageInputStream(new File("test.jpg")); ImageReader reader = (ImageReader) ImageIO.getImageReaders(ii

当我上传带有图像io的图像时,它正在转换图像的分辨率

我的意思是,我上传一张300 dpi的图像,它可以转换成96 dpi,为什么


我没有使用任何大小调整

猜测,您没有复制图像元数据,下面是一个简单的示例,说明如何执行此操作:

ImageInputStream iis =ImageIO.createImageInputStream(new File("test.jpg"));
ImageReader reader = (ImageReader) ImageIO.getImageReaders(iis).next();
reader.setInput(iis, true);

IIOMetadata meta = reader.getImageMetadata(0);

BufferedImage image = reader.read(0);

/*
do image manipulations here
 */

ImageOutputStream ios = ImageIO.createImageOutputStream(new File("out.jpg"));
ImageWriter writer = ImageIO.getImageWriter(reader);
writer.setOutput(ios);

writer.write(meta, new IIOImage(image, null, null), null);

由于您没有提供任何具体的细节,我已经在本地文件上对其进行了测试。不过,我希望它能给你一个提示。

我建议你编辑你的问题,使其具有正确的标点符号和大写字母。