Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Получить массив байт из изобажения


Автор: xpvit 4.3.2007, 19:15
Вот так просто загружаю изображение. 
Код

BufferedImage image = ImageIO.read(new File("E:\\NEW\\586005.jpg"));

А как получить массив RGB цветов этого изображения. То есть чтобы можно было узнать цвет каждой точки. Желательно чтобы поддерживало разные форматы изображений. Но если это сложно в принципе достаточно и BMP. Спасибо зараннее.

Автор: StyxR0CK 4.3.2007, 21:09
Код

image.getRGB()


надеюсь как пользоваться разберешься

Автор: xpvit 5.3.2007, 01:06
Что-то не могу понять. При запросе цвета точки функция возвращает -16711423, а фотошоп показывает цвет этой точки R=1 G=1 B=1. Как это дешифровать?? Как же получить нормальный цвет?? 

Автор: StyxR0CK 5.3.2007, 11:29
Этот метод возвращает цвет в int. Если тебе нужны его компонеты то, либо используй битовые операции смещения, либо так:

Код

new Color(img.getRGB(i, j)).getBlue()



Автор: LSD 5.3.2007, 18:16
Цитата(StyxR0CK @  5.3.2007,  11:29 Найти цитируемый пост)
либо используй битовые операции смещения

Лучше битовый операции ибо быстрей:
Код
  public int getRed(int rgba)
  {
    return (rgba >> 16) & 0xFF;
  }

  public int getGreen(int rgba)
  {
    return (rgba >> 8) & 0xFF;
  }

  public int getBlue(int rgba)
  {
    return (rgba >> 0) & 0xFF;
  }

  public int getAlpha(int rgba)
  {
    return (rgba >> 24) & 0xFF;
  }

Автор: xp-ViT 5.3.2007, 20:14
Большое спасибо я в принципе так и сделал smile
Код

int c = image.getRGB(j,i);
int red = (c & 0x00ff0000) >> 16;
int green = (c & 0x0000ff00) >> 8;
int blue = c & 0x000000ff;

Автор: LSD 5.3.2007, 23:55
xpvitxp-ViT, у нас на форуме не приветсвуется создание нескольких аккаунтов. Поэтому выбери себе один из них, и впредь пользуйся только им.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)