Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считать часть большого BMP файла не считывая весь, или считать весь не забив оперативку 
:(
    Опции темы
Miklek
Дата 14.4.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Считывать весь файл нельзя, т.к. оперетивная память забивается сотнями MB, а с программой работают несколько пользователей в терминале, сервак не выдерживает. Надо либо научится считывать часть большого BMP файла, либо научить программу не кушать оперативку при отображении всего файла, что врядли возможно.
Считываю файл стандартной командой:

    Bitmap:=TBitmap.Create();
    Bitmap.LoadFromFile(<Путь к файлу>);
или
    Image:=TImage.Create(ScrollBox);
    Image.Picture.LoadFromFile(<Путь к файлу>);

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


Эксперт
***


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

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



Не силён в делфях, но одно могу сказать. Нужно забыть, что файл - bmp и читать просто двоичный файл методами win32 API - CreateFile и ReadFile.


--------------------
user posted image
PM Jabber   Вверх
Alexeis
Дата 14.4.2009, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



  Можно отобразить файл в память см. FileMapping и рисовать тогда его руками, потому что TBitmap бессовестно расходует память кэшируя картинку целиком.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Miklek
Дата 17.4.2009, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



На www.delphimaster.ru предложили решение загрузки большого файла BMP без большого расходования ОЗУ. Файл в 300 MB кушает 3 MB оперативки. Пример прикреплен. Вопрос решен.  smile  smile  smile 

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  BMP_Big.rar 12,29 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




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


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

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