CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Wskaźnik do mapy bitowej TBitmap

Wskaźnik do mapy bitowej TBitmap

dział ogólny

Wskaźnik do mapy bitowej TBitmap

Nowy postprzez sebaskow » środa, 27 lipca 2011, 07:52

Witam.

Potrzebuję dowiedzieć się pod jaką funkcją w klasie TBitmap mogę uzyskać wskaźnik do mapy bitowej obrazu.
Adres tej części wczytanego obrazu do TBitmap gdzie znajdują się wartości kolorów pojedyńczych pixeli.
Avatar użytkownika
sebaskow
Intelektryk
Intelektryk
 
Posty: 135
Dołączył(a): wtorek, 3 maja 2011, 08:30
Lokalizacja: Katowice
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: C++ Builder XE7
Gadu Gadu: 0
    Windows XPChrome

Re: Wskaźnik do mapy bitowej TBitmap

Nowy postprzez Cyfrowy Baron » środa, 27 lipca 2011, 08:40

KOD cpp:     UKRYJ  
Graphics::TBitmap *Bitmapa = new Ggraphics::TBitmap;
Bitmapa->LoadFromFile("Bitmapa.bmp");

/* wspołrzędne pojedynczego piksela */
int x = 1;
int y = 1;

TColor pixelColor = Bitmapa->Canvas->Pixels[x][y];


Całą bitmapa jest tablicą pikseli. Bitmapa nie jest skompresowana jak np. format JPEG itp.
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
    Windows XPFirefox

Re: Wskaźnik do mapy bitowej TBitmap

Nowy postprzez polymorphism » środa, 27 lipca 2011, 09:51

Jemu raczej o to chodzi:
KOD cpp:     UKRYJ  
char* bmpData = (char*) Bitmapa->ScanLine[0];
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Wskaźnik do mapy bitowej TBitmap

Nowy postprzez Cyfrowy Baron » środa, 27 lipca 2011, 10:21

Dokładniej więc, chyba o to:

KOD cpp:     UKRYJ  
RGBTRIPLE *Pixel = (RGBTRIPLE*) Bitmapa->ScanLine[i];
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
    Windows XPFirefox

Re: Wskaźnik do mapy bitowej TBitmap

Nowy postprzez polymorphism » środa, 27 lipca 2011, 11:05

Tak, jeśli bitmapa jest 24-bitowa. Z drugiej strony nie wiadomo, co ma na myśli sebaskow pisząc "wskaźnik do mapy bitowej". Bo jeśli chodzi mu o dostęp do całości pamięci bitmapy, to to, co podałem, będzie bardziej odpowiednie, nawet jeśli mowa o bitmapie 24-bitowej - pamiętaj, że wiersze bitmap (scanline) wyrównywane są do wielokrotności 4 bajtów, i trzeba to uwzględniać przy ich wyliczaniu.

W sumie zamiast wskaźnika void* powinien być char*... (poprawiłem post)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Wskaźnik do mapy bitowej TBitmap

Nowy postprzez sebaskow » piątek, 29 lipca 2011, 21:08

Dokładnie.

Chodziło mi o adres pierwszego "pixela" tak abym mógł przekazać ten wskaźnik do np. tekstury przy programowaniu OpenGL.


Dziękuję.
Avatar użytkownika
sebaskow
Intelektryk
Intelektryk
 
Posty: 135
Dołączył(a): wtorek, 3 maja 2011, 08:30
Lokalizacja: Katowice
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: C++ Builder XE7
Gadu Gadu: 0
    Windows XPChrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

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