Как взять файл изображения и преобразовать его в растр, а затем получить доступ к его данным? - PullRequest
5 голосов
/ 24 октября 2011

Как взять файл изображения и преобразовать его в растр, а затем получить доступ к его данным (значениям RBG) попиксельно?

Ответы [ 5 ]

2 голосов
/ 24 октября 2011
BufferedImage image = ImageIO.read(new File(myFilename));
int pixel = image.getRGB(0, 0); // Top left pixel.
// Access the color components, valued 0-255.
int alpha = (pixel >>> 24) & 0xff; // If applicable to image format.
int r = (pixel >>> 16) & 0xff;
int g = (pixel >>> 8) & 0xff;
int b = pixel & 0xff;

[Редактировать] Обратите внимание, что ответ @ Sibbo правильный и удобно использовать методы доступа к цветам класса Color ; однако извлечение цветов непосредственно с помощью битовых манипуляций, как я продемонстрировал, вероятно, будет значительно быстрее, поскольку позволяет избежать накладных расходов при повторных вызовах конструктора.

2 голосов
/ 24 октября 2011
BufferedImage img = ImageIO.read(new File("lol"));
int rgb = img.getRGB(x, y);

Color c = new Color(rgb);

Теперь вы можете использовать Color.getRed (), getGreen (), getBlue () и getAlpha (), чтобы получить различные значения

1 голос
/ 13 декабря 2011

Используйте это:

Image img.getRGB(x, y);

Color c = new Color(rgb);
1 голос
/ 11 ноября 2011

Не используйте значения rgb после того, как вы завершили преобразование изображения в растр, используйте растры .getData метод

1 голос
/ 24 октября 2011

Используйте ImageIO.read для считывания файла изображения как BufferedImage, а затем используйте один из getData методов для получения * 1009 изображения*.И там вы найдете методы для получения данных пикселей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...