Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Быстрый доступ к пикселям ?(как сделать?)


Автор: zogman 30.1.2005, 15:54
Помогите !
Как мне быстро работать с картинкой ?
(Мне достаточно работы с образом картинки в памяти,
дело не в прорисовке).

TBitmap->Canvas->Pixels[i][j]=...
- работает медленней раз в 30 чем
если бы это был просто массив в ОЗУ.

Я бы хотел считать картинку в память,
а потом работать с ней по пикселям.
**************************
Второй вопрос :

Как мне найти где лежат в памяти байты картинки
после считывания?
т.е.
я ее считал через
Graphics::TBitmap *bmp;
bmp=new Graphics::TBitmap();
bmp->LoadFromFile("a.bmp");

Как мне найти где лежат BITMAPFILEHEADER
BITMAPINFOHEADER ?

Тогда бы я наверно решил первый свой вопрос.


Автор: zogman 30.1.2005, 15:55
Помогите !
Как мне быстро работать с картинкой ?
(Мне достаточно работы с образом картинки в памяти,
дело не в прорисовке).

TBitmap->Canvas->Pixels[i][j]=...
- работает медленней раз в 30 чем
если бы это был просто массив в ОЗУ.

Я бы хотел считать картинку в память,
а потом работать с ней по пикселям.
**************************
Второй вопрос :

Как мне найти где лежат в памяти байты картинки
после считывания?
т.е.
я ее считал через
Graphics::TBitmap *bmp;
bmp=new Graphics::TBitmap();
bmp->LoadFromFile("a.bmp");

Как мне найти где лежат BITMAPFILEHEADER
BITMAPINFOHEADER ?

Тогда бы я наверно решил первый свой вопрос.


Автор: myaut 31.1.2005, 18:12
ScanLine побыстрее будет

Автор: Adil' 1.2.2005, 10:58
zogman, смотри в сторону GetObject(bmp->Handle); еще может удобнене будет GetDIBits использовать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)