Java中的图像转换

时间:2013-01-31 05:15:07

标签: java image

我设计了一个休息服务来响应用户存储在数据库中的图像。服务很好。该服务以jpg格式响应图像。如果用户以jpg格式上传图像,则响应也很好,如果图像是某些其他格式,则响应不能呈现为图像。我需要为所有输入图像类型构建一个jpg转换器或编码器。是否有任何可能的方法来实现这一目标。

1 个答案:

答案 0 :(得分:11)

你应该看看ImageIO。它支持读写JPEG,PNG,BMP,WBMP和GIF。

JAI API还提供TIFF支持,我之前也使用过RAW插件用于尼康相机。

查看Working with ImagesJavaDocs了解详情。

更新了示例

没有源图像就无法进行正确的测试,但这是基本的工作流程。

我已使用File作为我的输入,但为了演示基本概念,我创建了InputStreamOutputStream(因为ImageIO可以读/写{ {1}} S)

File

<强>更新

所以使用上面的代码,我能够将我在paint中创建的PNG文件转换为JPG ...

<强> PNG / JPG

enter image description here enter image description here

您也可以尝试将输入流和输出流转换为File inputFile = new File("/path/to/image.png"); File outputFile = new File("Test.jpg"); try (InputStream is = new FileInputStream(inputFile)) { BufferedImage image = ImageIO.read(is); try (OutputStream os = new FileOutputStream(outputFile)) { ImageIO.write(image, "jpg", os); } catch (Exception exp) { exp.printStackTrace(); } } catch (Exception exp) { exp.printStackTrace(); } ImageInputStream,但这通常在您想要查找给定图像格式的提供程序时完成。

ImageOutputStream