Wyświetlenie obrazka bmp w PaintBox

problemy z tworzeniem aplikacji graficznych oraz audio i wideo

Wyświetlenie obrazka bmp w PaintBox

Nowy postprzez jabu74 - ekspert » sobota, 10 stycznia 2009, 14:56

Cześć

Jak wyświetlić obrazek w formacie bmp w PaintBox ? Załóżmy że obrazek nazywa się obraz.bmp i chcę go wyświetlić w PaintBox1. Proszę o procedurkę wyświetlającą oraz usuwającą obrazek.

Pozdrawiam
Avatar użytkownika
jabu74 - ekspert
 
    NieznanyNieznana

Re: Wyświetlenie obrazka bmp w PaintBox

Nowy postprzez Corvis » sobota, 10 stycznia 2009, 15:43

PaintBox ma wlaściowość Canvas na którym możesz rysować polecam :

http://cyfbar.republika.pl/canvas.html
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
PodziÄ™kowaÅ‚ : 80
OtrzymaÅ‚ podziÄ™kowaÅ„: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    NieznanyNieznana

Re: Wyświetlenie obrazka bmp w PaintBox

Nowy postprzez jabu74 - ekspert » sobota, 10 stycznia 2009, 22:07

Mam kolejny problem. Wyświetlam co 500ms słupki danych i tekst w PaintBox. Chciałem także wyświetlać różne informacje (miniaturowe obrazki) o stanie mojego programu:

Fragment kodu:

Kod: Zaznacz cały
Graphics::TBitmap *BMP = new Graphics::TBitmap();


fragment poniżej powtarza się co 500ms:

Kod: Zaznacz cały
BMP->LoadFromFile(picture);
PaintBox1->Canvas->Draw(100, 175, BMP);


W związku z powyższym pytanie brzmi czy nie należy usuwać BMP przed kolejnym odświeżaniem przez:

Kod: Zaznacz cały
delete BMP;


Ponadto czy lepiej załadować wszystkie obrazki w momencie uruchomienia programu tak by potem nie ładować ciągle od nowa przy pomocy LoadFromFile(). Jednocześnie mogą być wyświetlone 3 obrazki. Każdy ma swoją wersję ON/OFF czyli jest w sumie 6 obrazków.
Avatar użytkownika
jabu74 - ekspert
 
    NieznanyNieznana

Re: Wyświetlenie obrazka bmp w PaintBox

Nowy postprzez Cyfrowy Baron » niedziela, 11 stycznia 2009, 10:02

Jeżeli definiujesz obiekt typu TBitmap jako lokalny, czyli w zdarzeniu to należy go zawsze po wykorzystaniu usuwać. Jeżeli definiujesz jako globalny, to usuwasz tylko przy zamknięciu programu.
Lepiej jest wczytać przy starcie programu grafikę do kliku obiektów typu TBitmap i odrysowywać je po kolei w Canvas, tak będzie szybciej, gdyż pobranie grafiki z pamięci jest szybsze niż z dysku.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Wyświetlenie obrazka bmp w PaintBox

Nowy postprzez jabu74 - ekspert » Å›roda, 14 stycznia 2009, 20:20

Tak. Zmieniłem właśnie na obiekty globalne i ładuję wszystkie potrzebne obrazki do pamięci po starcie programu. Przy zamykaniu aplikacji usuwam je.

Jeszcze jedna sprawa mam 6 obrazków i zamiast:

Kod: Zaznacz cały
Graphics::TBitmap *BMP1 = new Graphics::TBitmap();
Graphics::TBitmap *BMP2 = new Graphics::TBitmap();.
.
.
Graphics::TBitmap *BMP6 = new Graphics::TBitmap();


chciałem zastąpić to odpowiednią tablicą na 6 obrazków tylko nie wiem jak ? :mrgreen:

Pozdrawiam
Avatar użytkownika
jabu74 - ekspert
 
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje multimedialne, graficzne

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 8 gości

cron