图像上传解决问题

时间:2010-12-21 14:17:49

标签: java image io

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

我的意思是说我正在上传300 dpi的图像,它会转换为96 dpi为什么?

我没有使用任何调整大小

1 个答案:

答案 0 :(得分:0)

猜猜,你不复制图像元数据,这里简单的例子如何做到这一点:

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);

由于您未提供任何具体细节,我已在本地文件上进行了测试。但是,我希望它能为您提供一些提示。