我有文件的数组[Byte],保存在DB上。 有没有办法将它转换为JPG,如果它是例如PNG? 并且光盘上没有保存文件,只是对那些数组[byte]
的操作谢谢!
答案 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)