Java BufferedImage: рисование пиксельного изображения с исходным размером пикселей приводит к искажению пикселей.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java BufferedImage: рисование пиксельного изображения с исходным размером пикселей приводит к искажению пикселей.

Сообщение Anonymous »

Я возился с BufferedImages и хотел посмотреть, возможно ли нарисовать изображение Pixel Art в исходном размере и масштабировать его.
Прежде чем я успел изменить его размер, Я заметил, что рисование пиксельного изображения в его исходном разрешении вызывало некоторые странные искажения, и я не знаю, почему и как это остановить. Я определенно не изменяю размер изображения и обязательно изменил RenderingHints на ближайший_сосед. Есть ли что-то, чего мне не хватает? Я даже загрузил файл, а затем сохранил его как новый файл, используя:

Код: Выделить всё

File outputfile = new File("image.png");
ImageIO.write(bufferedImage, "png", outputfile);
[UPDATE] Вот фрагмент кода, который я использую:

Код: Выделить всё

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class test extends JPanel {
private BufferedImage sprite;

public test() {
try {
sprite = ImageIO.read(new File("floor.png"));
} catch (IOException e) {
e.printStackTrace();
}
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(sprite, 10, 10, null);
}

public static void main(String[] args) {
JFrame frame = new JFrame();
test sp = new test();
frame.add(sp);
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);

}
}
Вот результат: https://i.sstatic.net/YJXJG.png
Вот то, что я ожидаю: https:/ /i.sstatic.net/8ilSr.png

Подробнее здесь: https://stackoverflow.com/questions/783 ... ize-causes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»