Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Быстрая работа с файлами 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), а только некоторые участки. Но это смотря где тормоза.


Наверх

Титульная страница Поиск, карта сайта Написать письмо