#java #image #colors #graphics #resize
#java #изображение #Цвет #графика #изменение размера
Вопрос:
Мне нужно написать программу, которая уменьшает изображение пополам без использования каких-либо библиотек, кроме Java Graphics и Java Color. Ранее я написал одно с Graphics2D, которое выглядело так —
public static void shrink(String orig, String convert) throws Exception { //Ahh damn we needed one from the red group
BufferedImage bufferedimg = null;
File f = new File(orig);
bufferedimg = ImageIO.read(f);
int width = bufferedimg.getWidth();
int height = bufferedimg.getHeight();
int finalWidth = width/2;
int finalHeight = height/2;
BufferedImage resizedImage = new BufferedImage(finalWidth, finalHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(bufferedimg, 0, 0, finalWidth, finalHeight, null);
g.dispose();
f = new File(convert);
ImageIO.write(resizedImage, "png", f);
}
Кто-нибудь может помочь?
Комментарии:
1. Image.getScaledInstance() изменяет размер изображения, хотя обычно оно не возвращает BufferedImage .
2. возможно, с помощью g.scale(double x, double y) перед вызовом g.drawImage
3. Вы всегда можете получить массив пикселей и реализовать масштабирование самостоятельно. Но почему бы не использовать стандартные библиотеки Java2D? Это школьное задание?