![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| ChevChelios |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 12.10.2009 Репутация: нет Всего: нет |
Доброго времени суток...
Задача следующая... работаю с очень большим изображением.. площадь порядка 4 000 000 000 пикселей... Соответственно надо отрисовывать кусками это изображение... но загрузить в ОП я не могу по причине явной ресурсоёмскости.... поэтому в голову приходит тока прочесть часть файла BMP и уже после этого отрисовать нужный кусок... |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 92 |
мысль явно неплохая, попробуйте
|
|||
|
||||
| ChevChelios |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 12.10.2009 Репутация: нет Всего: нет |
спасибо конечно за одобрение (=... ценю... но мне бы что нить как нить чтобы понять как из файла на диске мне прочитать кусок скажем 150 на 150 и скажем с середины самого изображения... |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 92 |
ChevChelios, вы бы привели что-нибудь, код какой-то, или мысли, как вы пытались и все такое...
По делу. Для начала вам надо понять основные параметры вашей картинки: высота, ширина, бит на пиксель сколько приходится (надеюсь сжатий и других экзотических вариаций формата нет), на эту тему гуглите BITMAPINFOHEADER. Определяете, какая часть картинки вам нужна. Дальше, осознаете, что файл - последовательного хранения структура данных, и вам придется применять такие утилиты как seek или их аналоги в вашем framework'е. С помощью упомянутого инструмента грузите строки в оперативную память, формируя картинку. Дальше, видимо, ее показываете, или что вы хотите с ней делать. |
|||
|
||||
| ChevChelios |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 12.10.2009 Репутация: нет Всего: нет |
ну по сути мне надо читать с конца файла и каким то образом сдвинуться на нужный участок данных изображения... а потом записат ьнужный участок?? так? если да то не ясно из какого соображения на сколько сдвигаться... и вообще
|
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 92 |
Ну что сказать.
Выдвигай работу на конкурс. Тут много способных программистов, кто-нибудь решит. Никто не возьмется - сделаю я, но это отдельный разговор будет. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 5 Всего: 459 |
У битмапа простая структура, даже в MSDN есть ее описание. Есть и все нужные заголовки. Пикселы идут слева направо снизу вверх. На форуме есть и подробное описание с примером. Правда там заточено под делфи http://forum.vingrad.ru/topic-94227.html
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| ChevChelios |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 12.10.2009 Репутация: нет Всего: нет |
Не тема... Alexeis, спасибо за линк... буду пытаться разобраться |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
ChevChelios, в чем проблема я не могу понять?
Берем файл бмп, насколько я знаю - это простой формат без шифрования и данные лежат там "как есть". http://use-incom.ru/forum/showthread.php?p=187 Читаем заголовки файла, предположим это у нас 24-битный рисунок: т.е. у нас три цвета по 8-бит (RGB). Теперь нам надо прочитать пиксели информации с 1000 по 10 000, следовательно нам надо получить байты с 3000 по 30 000. Все дела. Конкретезируйте: что не ясно? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |