![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
newinjava |
|
|||
![]() ATokS ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
Здраствуйте.
У меня есть файл в котором лежат друг за другом несколько JPG картинок, их место нахождение т.е. Offset(ы) мне известны. Мне нужно как-то вытянуть с помощью FileInputStream эти картинки в BufferedImage. На данный момент я делаю так: создаю FileOutputStream, сохраняю в отдельный файлы те картинки что находятся в исходном файле, а затем уже с помощью ImageIO.read создаю BufferedImage. Но вот проблемма в том что я не хочу создавать файлы, мне надо чтобы весь процес преоброзования прошел в памяти! Как это реализовать? |
|||
|
||||
newinjava |
|
|||
![]() ATokS ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
Всё уже помогли!
|
|||
|
||||
AlexeyVorotnikov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 10 Всего: 18 |
А почему нельзя так:
-------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
newinjava |
|
|||
![]() ATokS ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
А потомучто будит лишок прихвачен. Допустим файл состоит из 3 картинок, каждая по 10 Байт! ![]() Картинка 1: Offset: 0 Lenght: 10 Картинка 2: Offset: 10 Lenght: 20 Картинка 3: Offset: 20 Lenght: 30 Мне нужно только вторую. Т.Е. Я прыгаю к Offset: 10 fis.skip(10); И если я потом сразу сделаю return ImageIO.read(fis); то и третья картинка будит возвращаться. А мне надо только одну. По этому, то что с byteArray, идеально подходит к моей задаче. |
|||
|
||||
AlexeyVorotnikov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 10 Всего: 18 |
А вот отсюда поподробнее, пожалуйста. Метод ImageIO.read возвращает один имидж. Как и почему будет прочитан ещё один? PS. Если у меня сегодня будет немножко времени, поэкспериментирую. -------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
newinjava |
|
|||
![]() ATokS ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
Ну дак после того как я прыгнул к оффсету 10 вызывается return ImageIO.read(fis); который читает всё начиная с оффсета 10 и до конца! А мне надо только кусок от оффсета 10 до оффсета 20 |
|||
|
||||
AlexeyVorotnikov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 10 Всего: 18 |
Да, попробовал я сам. Что-то ImageIO.read, то ли, действительно, читает поток до конца, то ли просто глючит. Не получается нормально прочитать несколько изображение последовательно. :(
-------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |