Код: Выделить всё
//I've tried every kind of interpolation, but to no avail
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
В моем приложении:
[img]https: //i.sstatic.net/OlcEjLz1.png[/img]
В средстве просмотра фотографий vs code в масштабе 10 % (примерно тот же размер)

Любая помощь приветствуется!
ПРИМЕЧАНИЕ. Проблема возникает только при уменьшении масштаба изображений. Отображение изображения с разрешением 256x256 и размером 256x256 пикселей работает совершенно нормально.
РЕДАКТИРОВАТЬ: Вот минимально воспроизводимый пример, показывающий, что интерполяция/сглаживание не имеет значения:
Код: Выделить всё
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(400, 400);
final BufferedImage image = ImageIO.read(new File("home.png"));
JPanel pane = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.gray);
g2d.fillRect(0, 0, 400, 400);
//two examples, image on the left is without interpolation, image on the right is with interpolation
g2d.drawImage(image, 200, 200, 35, 35, null);
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawImage(image, 250, 200, 35, 35, null);
}
};
frame.add(pane);
frame.setVisible(true);
https://imgur.com/6xto1o5
Результат следующий:< /p>

Дом слева нарисован без интерполяции/анти. псевдонимы, изображение справа с обоими. Как видите, видимой разницы нет.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ot-working
Мобильная версия