如何从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

回到顶部