w jaki sposób można wyciągnąc poszczególne wartości RGB z jednego pixla w bitmapach
Moze napisz jeszcze, w jakim srodowisku pracujesz:)
Jeśli to Windows, to WinAPI ma makra
GetRValue
, GetGValue
, <code class="cpp">GetBValue
.
Jako argument podajesz 32-bitową wartość koloru w RGB (WORD), a ono zwraca wartość określonego koloru (BYTE).</cpp>
pracuje w Builder6, mam problem przy poprawnym odczytaniu bitmapy. Z Image1 chcĘ skopiować bitmatę do tablicy a nastepnie na nowy Image2 jednak cos nie wychodzi ponieważ zdjęcia w Image2 wychodzą czarno-białe, chciałbym by były kolorowe. PixselFormat musi byc ustawiony na 24 bity.
Odwolanie sie do piksela bitmapy:
Image -> Picture -> Bitmap -> Canvas -> Pixels[X][Y];
Do wyciagania skladowych RGB sluza makra podane przez Krecika, do ustawienia wartosci piksela sluzy makro RGB.
chodziło mi o cos takieg:
BYTE *wsk,tab[256][768];
Graphics::TBitmap bmp;
bmp=NULL;
bmp=new(Graphics::TBitmap);
bmp->Width=Form5->Image1->Width;
bmp->Height=Form5->Image1->Height;
bmp->PixelFormat=pf24bit;
for (int i=0;i<Form5->Image1->Height;i++)
{
wsk=(BYTE)Form5->Image1->Picture->Bitmap->ScanLine[i];
for (int j=0;j<Form5->Image1->Width;j++)
{
tab[i][j3]=wsk[j3];
tab[i][j3+1]=wsk[j3+1];
tab[i][j3+2]=wsk[j3+2];
}
}