Прямо сейчас у меня есть изображение, и я хочу преобразовать его в BufferedImage...
Это мой код -
private BufferedImage toBufferedImage(Image img, int width, int height){
// Create a buffered image with transparency
BufferedImage bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
// Draw the image on to the buffered image
Graphics bGr = bimage.getGraphics();
bGr.drawImage(img, 0, 0, null);
bGr.dispose();
// Return the buffered image
return bimage;
}
Но это не сработает. Может кто-нибудь объяснить, что случилось?
Попробуйте новую JRE, которая включает JavaFX.
Вы можете использовать SwingFXUtils. Существует метод, который делает то, что вы просите:
BufferedImage image = SwingFXUtils.fromFXImage(fxImage, null);
или
BufferedImage image = ImageIO.read(new File(filename));
BufferedImage расширяет изображение, поэтому вы можете использовать его:
BufferedImage buffered = (BufferedImage) image;
Но вы должны проверить тип объекта изображения во время выполнения, потому что он может содержать другой вид изображения.
ОБНОВИТЬ
Чтобы преобразовать изображение в BufferedImage, вы должны проверить этот класс и попробовать его: