Jak odwrócić bitmapę?

  • 2 Odpowiedzi
  • 1055 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

Jak odwrócić bitmapę?
« dnia: Wrzesień 14, 2002, 21:03:01 »
W jaki sposób mogę odbić bitmapę w poziomie?

*

Offline Cezex

  • ***
  • 493
    • RedFish
Jak odwrócić bitmapę?
« Odpowiedź #1 dnia: Wrzesień 15, 2002, 13:46:49 »
??? Chyba trochę off-topic...

Jak odwrócić bitmapę?
« Odpowiedź #2 dnia: Wrzesień 18, 2002, 02:33:44 »
Czemu off-topic?

Wczytuję bitmapę przez WinGetBitmap() potrzebuję wyświetlić ją - raz normalnie, a raz odbitą w poziomie. Nie opłaca mi wkładać dwóch bitmap - zamą za dużo miejsca (tych rysunków też zresztą jest dużo).

Jak na razie znalazłem dwa wyjścia:
1. Dobrać się do pixeli tej bitmapy i odwracać ją ręcznie przed wrzuceniem na ekran (To już napisałem tyle, że na razie tylko dla 256-kolorowych obrazków). Jednak z oszczędności sterty (jak rozumiem na moim IIIc mam jej tylko 256KB) nie trzymam obu na "offscreen window".
2. Napisanie własnej wersji WinCopyRectangle(), która umożliwi odbijanie jako parametr. Nie muszę wtedy odwracać bitampy - wystarczy, aby umieszczać bajty w odwrotnej kolejności. Pozatym - dobrze byłoby to zoptymalizować, tak aby działało na UInt32 zamiast zwykłych UInt8. Nie wspomnę o problemie z wyrównywaniem do wielokrotności 4 bajtów przy bezpośrednim pisaniem do pamięci. Jest jeszcze jeden haczyk - moje bitmapy używają koloru przeźroczystego - co jeszcze bardziej komplikuje kod WinCopyRectangle(). Ba, kod ten również musiał bym napisać w wersji na urządzenia 16- i 256-kolorowe.

Dlatego też zastanawiałem się, czy ktoś może czegoś takiego nie napisał, bądź czy nie przeoczyłem czegoś w dokumentacji.

A zależy mi na tym aby kod ten był jak najszybszy, bo przekłada się to na odpowiednio wysoką ilość klatek na sekundę przy animacji.

Pytanie moje było w związane z programowaniem na Palma, więc wydawało mi się, że to dobra grupa.