Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

Частичная загрузка битмапов   Найти похожие ветки 

 
Илья.Сан   (2005-07-15 13:49) [0]

Доброго времени суток, Мастера. Помогите, плз, советом в следующем вопросе. Возможно ли, а если возможно, то как, в битмап загружать не полностью всю картинку из файла, а только определенный диапазон пикселей?
 Bmp := TBitmap.Create;
 if OpenPictureDialog1.Execute then
   //этот цикл вып-ся сотни раз
   for i := 0 to OpenPictureDialog1.Files.Count - 1 do                 begin                                                               Bmp.LoadFromFile(OpenPictureDialog1.Files.Strings[i]);
       ....    
Я привел кусочек кода, в котором показано как я делал, но т.к. цикл выполнятся сотни раз, то работает все медленно. Посему может стоит загружать только необходимый кусок картинки? Заранее спасибо!


 
Магнитон Борыч   (2005-07-15 19:54) [1]

Из приведенного кода не ясно, что ты делаешь с картинками.


 
XProger ©   (2005-07-16 04:03) [2]

Илья.Сан,

AssignFile(F, FileName);
Reset(F);
...
Seek(offset);
...
CloseFile(F);

Надеюсь ты понял о чём я?


 
Илья.Сан   (2005-07-18 10:14) [3]

2 Магнитон Борыч
Далее я получаю доступ к каждому пикселю из нужного диапазона, а затем узнаю его яркость. Потом уже с таблицей яркостей и работаю.
2 XProger
Но ведь нужно точно знать, в каком месте файла хранится информация о цвете каждого пикселя? Тогда нужно искать как устроен формат бмпэшки?


 
Anatoly Podgoretsky ©   (2005-07-18 10:17) [4]

Илья.Сан   (18.07.05 10:14) [3]
Вот это и тормозит, а не загрузка.


 
Илья.Сан   (2005-07-18 12:05) [5]

2 Anatoly Podgoretsky
Это верно - тормозит. Там я уже сделал все, что мог, быстрее не будет работать. А вот с загрузкой мне казалось можно поработать... Ведь это логично - грузить только участок битмапа, который нужен для работы. Экономия на лицо :)Вопрос - как сделать?


 
Eraser ©   (2005-07-18 12:43) [6]

Илья.Сан   (18.07.05 12:05) [5]

См. св-во ScanLine.


 
Илья.Сан   (2005-07-18 13:06) [7]

Свойство ScanLine я использовал... Но потом заменил более быстрым и удобным свойством. Но вопрос то по загрузке битмапа с диска,
со сканлайном я уже разобрался.


 
Antonn ©   (2005-07-18 15:07) [8]

а через TFileStream нельзя прочитать заголовок файла и данные в нужном куске файла?


 
Магнитон Борыч   (2005-07-18 23:50) [9]

> Илья.Сан  (18.07.05 10:14) [3]
> Далее я получаю доступ к каждому пикселю из нужного диапазона


Так и не понял, что такое дипазаон. Прямоугольник что ли?
http://delphigfx.mastak.ru/2d/014/2d_14.htm


 
NikotiN ©   (2005-07-19 21:08) [10]

ему эжу ответили Seek!!!!!
а на чём его использовать (file, filestream) уже не важно.
а формат bmp, это очень просто.

про экономи, экономия будет тогда, когда всё загрузишь в память, а потом по кускам оттуда брать, ведь скорость считывания с hdd меньше оперы. хотя всё зависит от размеров картинки.


 
Илья.Сан   (2005-07-20 12:43) [11]

Спасибо, Господа, за исчерпывающие ответы! Работаемс...


 
Eraser ©   (2005-07-20 15:28) [12]

Илья.Сан   (18.07.05 13:06) [7]
Свойство ScanLine я использовал... Но потом заменил более быстрым и удобным свойством.


И каким же? ScanLine это ничто иное, как указатель на данные, куда уж тут быстрее?



Страницы: 1 вся ветка

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
2-1133682214
bogdan
2005-12-04 10:43
2005.12.25
Цвета в мемо


10-1109069193
Tarik
2005-02-22 13:46
2005.12.25
Ole


2-1133968311
kop
2005-12-07 18:11
2005.12.25
Что делаю не так?


14-1133263914
Laymer
2005-11-29 14:31
2005.12.25
FireWall и ICQ


14-1132994507
IceBeerg
2005-11-26 11:41
2005.12.25
Как давать взятки врачам?