Witam,
mam problem z szybkością rysowania obrazków, "pomijając" tło - dla przykładu weźmy piłkę na czarnym (rgb 0,0,0) tle. Do tej pory wymyśliłem dwie drogi - albo piksel po pikselu sprawdzam, czy jest on (piksel) czarny, i jeśli nie, to "nanoszę" go na klatkę, albo pobieram kolor piksela z klatki i nanoszę go na tło obrazka z piłką, potem rysuję całość za pomocą Draw() na klatce. (Draw() działa błyskawicznie i rozwiązuje problem szybkości, ale nie mogę przecież zostawić tego tła :)).
Jest jakaś funkcja, biblioteka albo metoda pomocna w tym temacie?
Dla obrazu wrzucam przykładową funkcję.
Z góry dzięki za pomoc.
#define __TRANSPARENT_COLOR clBlack
void __fastcall BlendDrow( int target_width,
int target_height,
int left,
int top,
TPicture * back,
TPicture * target)
{
for (int i=0;i<target_width;++i)
{
for (int j=0;j<target_height;++j)
{
if (target->Bitmap->Canvas->Pixels[i][j]!=__TRANSPARENT_COLOR)
{
back->Bitmap->Canvas->Pixels[i+left][j+top]=target->Bitmap->Canvas->Pixels[i][j];
}
}
}
return;
}