java - 正确替换 Sun 内部 com.sun.image.codec.jpeg 包的使用?

标签 java jpeg encode decode

我们有一些代码在使用这个旧的内部 Sun 包来处理图像,本质上是在从输入流中读取/解码后将 JPEG 编码为特定的大小和质量。下面的代码示例。我将不胜感激使用适当的 java.* 或 javax.* API 的最佳实践替换示例。

private void encodeJPEG(BufferedImage bi, BufferedOutputStream out, float quality) throws
  ImageFormatException, IOException {
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
 JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
 param.setQuality(quality, false);
 param.setDensityUnit(DENSITY_UNIT);
 param.setXDensity(DENSITY);
 param.setYDensity(DENSITY);
 encoder.setJPEGEncodeParam(param);
 encoder.encode(bi);
}


private void initJPEG(File jpegFile) throws FileNotFoundException, IOException,
  IOException {
FileInputStream inputStream = new FileInputStream(jpegFile);
try {
  JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(inputStream);
  buffImage = decoder.decodeAsBufferedImage();
}
.....error handling.....

最佳答案

我还没有尝试过这种方法,但你可以看看 Java Image I/O API . JPEGImageWriteParam class会特别感兴趣。

关于java - 正确替换 Sun 内部 com.sun.image.codec.jpeg 包的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1359904/

相关文章:

python - 在python中获取Base64图像尺寸

java - 使用 Java 编辑 jpeg EXIF 数据

jpeg - 在 Photoshop 操作中使用图层名称导出(另存为)jpg

python - 如何将编码的unicode转换为可读的unicode

javascript - 使用 javascript 检查字符串是否经过编码

java - HttpURLConnection:如何读取 400 响应的有效负载

java - 如何存储具有重复项的整数集

javascript - 这个解码十六进制字符串然后将其编码为 base64 的 Python 代码将如何用 Javascript 编写?

java - ReplaceAll (""、 "") 删除字符串中空格 ""之后的所有文本?

java - 在Java中检查字符串值是否为空的最佳方法