Я пытаюсь уменьшить пиксельное изображение (из долины звездной росы), состоящее из 4x4 пикселей на блок одного цвета, до того же изображения с 1x1 пикселем на блок.
Photoshop отлично работает, когда я просто изменяю его размер с помощью интерполяции NEAREST_NEIGHBOUR
.
Но когда я использую технику из: Как масштабировать BufferedImage
но вместо TYPE_NEAREST_NEIGHBOR
все уничтожается.
Что не так и как мне исправить это?
BufferedImage old = getScreenShot();
int w = old.getWidth();
int h = old.getHeight();
int newWidth = w/4;
int newHeight = h/4;
BufferedImage resized = new BufferedImage(newWidth, newHeight, old.getType());
AffineTransform at = new AffineTransform();
at.scale(0.25, 0.25);
AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
resized = scaleOp.filter(old, resized);
//TODO (remove) for debugging the screencapture capability
File outputfile = new File("C:/Users/Kevin/Desktop/imagetestmap/test.jpg");
try {
ImageIO.write(resized, "jpg", outputfile);
} catch (IOException e) {
e.printStackTrace();
}
return resized;
фактический скриншот:
что видит фотошоп:
что видит моя программа: