[bcb]Przeźroczysty canvas

0

Witam,
Mam dwa obiekty TImage ułożone jeden na drugi. Jednak kiedy narysuję coś na Canvasie pierwszego obiektu(tego na górze)(np. Image1->Canvas->Pixels[1][1]=clRed) nie widać tego, co jest narysowane na drugim obiekcie(pod nim), gdyż cały górny obraz robi się biały(za wyjątkiem jednego czerwonego piksela). Czy jest możliwość rysować po górnym canvasie tak, aby nie zmieniał on całego swojego koloru, tylko określone piksele?
Z góry dzięki za odpowiedź
Pozdrawiam

0

musiałbyś użyć komponentu którzy używa AlphaBlend (TBitmap z 32 bitową głębią?) lub TransparentBlt.
jak nie to ręcznie rysuj.

Widzisz, czasem nie wszystko da się zrobić sposobem TZróbZaMnie...

0

a co masz na mysli przez ręczne rysowanie?

0

ręczne rysowanie tego czego ci trzeba po canvasie okna (np w OnPaint?)

czyli konkretnie: TransparentBlt(http://msdn.microsoft.com/en-us/library/dd145141(v=vs.85).aspx), gdzie HDC hdcDest to handle canvasa okna na którym będziesz rysował, a HDC hdcSrc to handle TBitmap który ma być rysowany, interesuje cię ostatni parametr będący kolorem "przezroczystym"

pewnie można to zrobić używając jakiegoś TZróbZaMnie, ale akurat wiem jak to zrobić nie używając TZróbZaMnie...

0

Ustaw sobie coś takiego :
Image1->Picture->Canvas->Bitmap->Brush->Style = bsClear;
To pozwoli ci pisać i rysować po wczytanym obrazku w Image1->Picture :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1