Текущий архив: 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.47 MB
Время: 0.013 c