В чем разница между Graphics2D.drawImage (полученным из BufferedImage) и BufferedImage.setRGB () для заполнения BufferedImage в Java? - PullRequest
0 голосов
/ 12 марта 2019

При попытке масштабировать изображение, нарисованное на холсте, я наткнулся на Graphics2D.drawImage(originalImage) [объект Graphics2D, полученный из объекта BufferedImage].

Я использовал его для рисования изображения в графике, созданной из BufferedImage, теперь это новое изображение можно было нарисовать на графическом объекте панели / рамки, чтобы получить увеличенное изображение.

Я заполнил исходное изображение, используя BufferedImage.setRGB.

Итак, что на самом деле делает? Это выборочно пропускает пиксели из исходного изображения?


Аналогично этому коду.

int newImageWidth = imageWidth * zoomLevel;
int newImageHeight = imageHeight * zoomLevel;
BufferedImage resizedImage = new BufferedImage(newImageWidth , newImageHeight, imageType);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, newImageWidth , newImageHeight , null);
g.dispose();

Оригинальный ответ на вышеуказанный код

...