Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > FileInputStream to BufferedImage |
Автор: newinjava 9.5.2011, 11:03 |
Здраствуйте. У меня есть файл в котором лежат друг за другом несколько JPG картинок, их место нахождение т.е. Offset(ы) мне известны. Мне нужно как-то вытянуть с помощью FileInputStream эти картинки в BufferedImage. На данный момент я делаю так: создаю FileOutputStream, сохраняю в отдельный файлы те картинки что находятся в исходном файле, а затем уже с помощью ImageIO.read создаю BufferedImage. Но вот проблемма в том что я не хочу создавать файлы, мне надо чтобы весь процес преоброзования прошел в памяти! Как это реализовать? |
Автор: newinjava 9.5.2011, 14:16 | ||
Всё уже помогли!
|
Автор: AlexeyVorotnikov 10.5.2011, 10:05 | ||
А почему нельзя так:
|
Автор: newinjava 12.5.2011, 12:04 |
А потомучто будит лишок прихвачен. Допустим файл состоит из 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, идеально подходит к моей задаче. |
Автор: newinjava 16.5.2011, 16:46 |
Ну дак после того как я прыгнул к оффсету 10 вызывается return ImageIO.read(fis); который читает всё начиная с оффсета 10 и до конца! А мне надо только кусок от оффсета 10 до оффсета 20 |
Автор: AlexeyVorotnikov 17.5.2011, 12:32 |
Да, попробовал я сам. Что-то ImageIO.read, то ли, действительно, читает поток до конца, то ли просто глючит. Не получается нормально прочитать несколько изображение последовательно. :( |