Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как от Image получить нормальный набор байт 
:(
    Опции темы
hamsterKSU
Дата 11.4.2008, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



Привет. 

Имеется Image как его сохранить или передать по сети?

Собственно надо както взять набор байт и делать с ними все что хочеться, но как? у Image есть только - получение массива RGB
PM MAIL ICQ   Вверх
eugine_s
Дата 11.4.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



у Image есть не только получение массива RGB, но и создание картинки из массива RGB.

1) Получил массив байт
2) Внес изменения в этот массив
3) Создал новую картинку из RGB 

Тебя интересует как внести изменения в одномерный массив, который представляет двухмерную картинку? Тут нужно разработать алгоритм какой. Какой алгоритм? Так это зависит от твоей задачи.
Вот тут есть алгоритм поворота картинки на произвольный угол...
PM MAIL   Вверх
DarK__AngeL
Дата 11.4.2008, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Цитата(hamsterKSU @ 11.4.2008,  14:05)
Привет. 

Имеется Image как его сохранить или передать по сети?

Собственно надо както взять набор байт и делать с ними все что хочеться, но как? у Image есть только - получение массива RGB

не RGB, а ARGB. Это разные вещи. A - это альфа канал, который придаёт прозрачность.
код простенький:
Код

Image image = (....);
int imgWidth = image.getWidth();
int imgHeight = image.getHeight();
int[] rgbData = new int[imgWidth*imgHeight];
try {
      image.getRGB(rgbData, 0, imgWidth*imgHeight, 0, 0, imgWidth, imgHeight);
} catch (Exception e) {}

Enjoy ;)

Добавлено @ 15:30
забыл сказать, что картинка - это обычный массив ARGB, так что потерь качества изображения и прочь не будет smile 

Это сообщение отредактировал(а) DarK__AngeL - 11.4.2008, 15:31
PM MAIL   Вверх
hamsterKSU
Дата 11.4.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



нет. меня интересует как всзять набор байт для сохранения картинки в файл или передачи по сети
PM MAIL ICQ   Вверх
DarK__AngeL
Дата 11.4.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



hamsterKSU, дык это есть то, что тебе нужно. с инета, например, в таком же формате приходят картинки

Добавлено @ 15:57
и ещё, если тебя смущает массив типа int, делай byte ;) то есть:
Код

byte[] rgbData = new byte[imgWidth*imgHeight];

просто повышение/понижение типов в ява идёт на автомате, так что разницы нету (использование памяти правд немног только будет отличаться)

Это сообщение отредактировал(а) DarK__AngeL - 11.4.2008, 15:57
PM MAIL   Вверх
hamsterKSU
Дата 17.4.2008, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



Пасиба за ответ. вот тока 3-й параметр надо
Код

.......................
img.getRGB(argb, 0,img.getWidth(),..........
.......................


вместо
Код

...........................................
image.getRGB(rgbData, 0, imgWidth*imgHeight,............................
...........................................


но у меня так чето и не получилось этот масив ARGB сохранить на файловую систему, что бы потом его можно было открыть. 

Это сообщение отредактировал(а) hamsterKSU - 17.4.2008, 01:17
PM MAIL ICQ   Вверх
DarK__AngeL
Дата 19.4.2008, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



угу, я ошипся....а вот ещё зависит, как ты сохраняешь массив.....в принципе можно сохраняить и в txt, переведя массив в строку
PM MAIL   Вверх
hamsterKSU
Дата 21.4.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



прикол не вто м что я сохраняю а потом читаю то что я  сохранил и как я это сохранил - мне надо сохранить так что бы потом любым вьювером картинок можно ее было открыть, не только для нужд программы
PM MAIL ICQ   Вверх
eugine_s
Дата 21.4.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(hamsterKSU @  21.4.2008,  15:22 Найти цитируемый пост)
прикол не вто м что я сохраняю а потом читаю то что я  сохранил и как я это сохранил - мне надо сохранить так что бы потом любым вьювером картинок можно ее было открыть, не только для нужд программы


Картинку (точнее байты этой картинки) которую ты пытаешься сохранить - это картинка во внутреннем представлении Java. 
Любой вьювер распознает только определенные форматы данных JPG, PNG, GIF.
Чтобы сделать, что ты хочешь нужно из формата Java Image (точнее из набора байт Image-а)  сделать картинку в определенном формате (т.е. перекодировать в известный формат - JPG, PNG, GIF)....

Вот тут что-то есть по этому поводу, но кажется решения для j2me там нет.



PM MAIL   Вверх
hamsterKSU
Дата 23.4.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



пасиба всем.

Вопрос не ршен - но есть путь как его обойти - когда получили набор байт, то его надо просто держать в памяти, но тогда у нас в памяти будет какбы 2 картинки  - сама картинка и набор байт который ей сообветствует.
PM MAIL ICQ   Вверх
math64
Дата 23.4.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



1. Перегнать на компьютер и там собрать нормальный файл
2. Возможно есть нестандартое API для конкретных телефонов (если можно перехватить картинку снятую камерой, подменить её на свою и сохранить)?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.1278 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.