gui*_*oet 7 java compression jpeg image-processing
我想使用Java压缩jpeg文件.我是这样做的:
BufferedImage好吧,这看起来很简单,但我发现ICC颜色配置文件和EXIF信息在新文件中消失了,图像的DPI从240降到72.它看起来与原始图像不同.我在OS X中使用像预览这样的工具.它可以完美地改变图像的质量而不会影响其他信息.
我可以用Java完成吗?至少保留ICC颜色配置文件并让图像颜色看起来与原始照片相同?
小智 0
/**
* @param inputFilenameWithPath : binary filepath
* @param outputFilepath : output image path
* @param start : from where the image start in binary file
* @param len : length of the image
* @throws ImageAccessException
*/
public void extractImageFromBinaryFile(String inputFilenameWithPath, String outputFilepath, int start, int len) throws ImageAccessException
{
try
{
File file = new File(inputFilenameWithPath);
FileImageInputStream iis = new FileImageInputStream(file);
// Added
byte[] b = new byte[start];
iis.read(b, 0, start);
byte[] fb = new byte[]{};
iis.read(fb);
IIOByteBuffer iiob = new IIOByteBuffer(fb, start, len);
iis.readBytes(iiob, len);
OutputStream os = new FileOutputStream(outputFilepath);
os.write(iiob.getData());
iis.close();
os.close();
}
catch (IOException ioe)
{`enter code here`
throw new ImageAccessException("Image File read/write error");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13163 次 |
| 最近记录: |