![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Быстрая работа с файлами Jpeg [D7, Win95/98, WinXP]
dedMazDie © (2004-07-19 12:22:00)Проблема такова. Имеется около сотни файлов Jpeg (снятых с камеры с шагом 0.1 мм произвольного объекта). В каждом из них выбирается полоса из 21-го пиксела и оценивается светимость каждого пиксела. Результаты сохраняются. Вопрос таков как это можно сделать наиболее экономичным способом. Я делал так:
BitMap := TBitmap.Create;
JpegIm := TJPEGImage.Create;
for j := 0 to 20 do
begin
Pict.Clear;
for i := 0 to OpenDialog.Files.Count - 1 do
begin
JpegIm.LoadFromFile(OpenDialog.Files.Strings[i]);
BitMap.Assign(JpegIm);
l[1] := 0.1*i;
l[2]:=0;
ColorToHSL(BitMap.Canvas.Pixels[435, j + 200], H, S, Lumin);
l[2] := Lumin;
Pict.Add(@l);
end;
получается весьма долго. А при реальном измерении картинок будет в разы больше и подобная скорость совсем неприемла
dedMazDie (2004-08-02 10:56:00) [1]Да в общем все задают этот вопрос... Я не знаю честно говоря. Картинки снимает камера, но там можно поставить и битмап...
Только объём будет больше. А вот мне посоветовали, что можно прямо из файла считывать инфу о пикселах, использая айпишные функции... Какие соображения по этому поводу будут?
Думкин (2004-07-28 14:10:00) [2]А JPeg из каких соображений? Все-таки потеря информации, перекодировка..
dedMazDie (2004-07-28 14:08:00) [3]Спасибо за советы! Попробую что-нить изменить.
Анонимщик (2004-07-21 16:29:00) [4]Если есть желание помучиться, скачай описание jpeg - формата файла и алгоритмов, используемых для сжатия, но, если ты с этим раньше не сталкивался, лучше обломись:
http://sources.codenet.ru/download.php?id=248&cid=20&o=0&my=0
Анонимщик (2004-07-21 15:41:00) [5]Возможна то возможна, да только я не совсем уверен, что у тебя получится.
Поставь только Bitmap.Handle := dmDIB и проверь, может, ускорится до приемлемого. Естетсвенно, используй ScanLine
dedMazDie (2004-07-21 15:22:00) [6]2Анонимщик
Т.е. возможна перекодировка только определенного участка картинки?
Анонимщик (2004-07-19 15:36:00) [7]1. Обращайся к пикселям через ScanLine, будет быстрее.
2. Тебе ведь нужно перекодировать не всю картинку (из jpeg в bitmap), а только некоторые участки. Но это смотря где тормоза.