如何从javafx imageView获取byte []?
我如何从javafx image / imageview类获取byte []?我想将图像作为Blob存储到数据库中。这是我使用的方法
public PreparedStatement prepareQuery(HSQLDBConnector connector) { try {
Blob logoBlob = connector.connection.createBlob();
logoBlob.setBytes(0,logo.getImage());//stuck here
for (int i = 0, a = 1; i < data.length; i++, a++) {
connector.prepStatCreateProfile.setString(a, data[i]);
}
//store LOB
connector.prepStatCreateProfile.setBlob(11, logoBlob);
} catch (SQLException ex) {
ex.printStackTrace();
}
return connector.prepStatCreateProfile;
}
回答:
试试这个:
BufferedImage bImage = SwingFXUtils.fromFXImage(logo.getImage(), null);ByteArrayOutputStream s = new ByteArrayOutputStream();
ImageIO.write(bImage, "png", s);
byte[] res = s.toByteArray();
s.close(); //especially if you are using a different output stream.
应该根据徽标类别工作
您需要在写入和读取时指定一种格式,据我所知,不支持bmp,因此最终将在数据库上使用png字节数组
以上是 如何从javafx imageView获取byte []? 的全部内容, 来源链接: utcz.com/qa/403423.html