моя проблема проста, у меня есть код, который я написал, чтобы сначала уменьшить изображение, а затем обрезать его до нужных размеров (полученных классом Constants).
if(image != null){
Image originalImage = image.getImage();
int width = Constants.width;
//Algorithm: get the original width and divide with desired width
int height = originalImage.getHeight(null)/(originalImage.getWidth(null)/width);
Image scaledImage = originalImage.getScaledInstance(width, height, java.awt.Image.SCALE_SMOOTH);
//Now to crop it to specified dimensions
BufferedImage imageToCrop = (BufferedImage) (java.awt.Image) scaledImage;
height = Constants.height;
imageToCrop = imageToCrop.getSubimage(imageToCrop.getWidth() - width, imageToCrop.getHeight() - height, width, height);
image.setImage(imageToCrop);
}
При запуске я получаю сообщение об ошибке:
java.lang.ClassCastException: sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage
И это соответствует строке:
BufferedImage imageToCrop = (BufferedImage) (java.awt.Image) scaledImage;
Теперь я нигде не импортировал sun.awt, вот список импортированных предметов для этого класса:
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.swing.ImageIcon;
Так почему же возникает эта ошибка? Я просто не понимаю! Как вы можете заметить, я даже пробовал много способов ВРУЧНУЮ СИЛУ, но все еще безрезультатно: (
Любая помощь действительно ценится! Спасибо!