图像文件PNG的数组[字节]转换为JPG

时间:2013-09-10 17:42:01

标签: java scala

我有文件的数组[Byte],保存在DB上。 有没有办法将它转换为JPG,如果它是例如PNG? 并且光盘上没有保存文件,只是对那些数组[byte]

的操作

谢谢!

2 个答案:

答案 0 :(得分:6)

将其读入BufferedImage并使用JPG编码将其再次写入字节数组。

InputStream is = ...;
BufferedImage img = ImageIO.read(is);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(img, "JPG", baos);
byte[] array = baos.toByteArray();

对于输入流(is),请使用直接来自数据库中BLOB的输入流,或使用ByteArrayInputStream

答案 1 :(得分:2)

对于Scala,您可以使用此库https://github.com/sksamuel/scrimage

然后,

val in = ... // your Array[Byte]
val png = Image(in).write(Format.PNG)