Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

Pixels, ScanLine и Массив   Найти похожие ветки 

 
Хинт ©   (2005-07-15 10:07) [0]

Имеется TBitmap 150x100 (изначально 24х битный). В процессе работы программы все пиксели становятся либо белыми, либо черными. Потом происходит многократное обращение к каждому пикселю. Пока все это реализовано с помощью Pixels[i,j], но даже при малом размере изображения 150x100 на анализ уходит (в зависимости от содержания изображения) около 3х секунд. Операция анализа происходит довольно часто... Поэтому крайне необходимо оптимизировать алгоритм... Первым делом подумал про ScanLine, но сразу же отбросил эту идею (может быть напрасно), так как порядок считывания пикселей хаотичен... И мне пришла вот такая идея:

Создать массив
M:array [0..149,0..99] of boolean;
записать туда через ScanLine значения true (к примеру для черных пикселей) и false (для белых) и уже обращаться впоследствии к этому массиву...

Хотелось бы услышать мнение мастеров, даст ли предложенный мною вариант выигрыш во времени, если все что я здесь написал - полнейшая чушь...


 
Хинт ©   (2005-07-15 10:10) [1]

Последнее предложение читать так:
Хотелось бы услышать мнение мастеров, даст ли предложенный мною вариант выигрыш во времени? Или все что я здесь написал - полнейшая чушь?
=)


 
PVOzerski ©   (2005-07-15 11:17) [2]

А scanline-то чем плох? Я бы уж завел массив указателей, которым наприсваивал соответствующие сканлайны. Опять же, как человек ленивый, я бы использовал не просто Pointer, а описал типы TPixel = array[0..0] of packed record b, g, r: bytebool end; PPixel = ^TPixel. Хотя, говорят, использовать адресную арифметику вместо индексов еще быстрее - не проверял, это должно быть на совести компилятора.


 
ЮЮ ©   (2005-07-15 11:24) [3]

Возьми TBitmap32 из библиотеки Graphics32. Он за три секунды эти Pixels несколько тыщ раз перелопатит


 
Хинт ©   (2005-07-16 12:12) [4]

2ЮЮ
Хотелось бы посмотреть на эту библиотеку, но на официальном сайте почему-то отстутствуют архивы, хотя ссылки на них есть =(
http://g32.org/graphics32/index.html#Downloads


 
debuger ©   (2005-07-16 17:24) [5]

[2] есть очень эффективен имхо.


 
Магнитон Борыч   (2005-07-16 20:25) [6]

> Хинт ©  (15.07.05 10:07)
> Имеется TBitmap 150x100 (изначально 24х битный). В процессе работы программы все пиксели становятся либо белыми, либо черными.


А почему не 1-битный? Если всего 2 цвета?
По поводу быстрого доступа к пикселам читай статью:
http://www.delphimaster.ru/articles/pixels/index.html



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

Форум: "Media";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.02 c
2-1133360990
integery
2005-11-30 17:29
2005.12.18
помогите з запросом


2-1133341058
solomon
2005-11-30 11:57
2005.12.18
Как в TWebBrowser е отключить загрузку картинок


1-1132748742
Mitchy
2005-11-23 15:25
2005.12.18
Как программно установить позицию ToolBar?


2-1133600599
coral
2005-12-03 12:03
2005.12.18
Помогите плиз срочно!


2-1133441340
Mamed
2005-12-01 15:49
2005.12.18
Byte Array to WideString





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский