JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Bitmap pixel Werte auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Florian
Super JLI'ler


Alter: 37
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 01.11.2005, 22:25    Titel: Bitmap pixel Werte auslesen Antworten mit Zitat

Hallo
Wie kann ich von ein BITMAP einzelne Pixeln auslesen. Ich habs mal so probiert funktioniert irgendwie aber nicht.

int *pbmp = NULL;
pbmp = bmp.bmBits;

Es kommt immer 'void *' kann nicht in 'int *' konvertiert werden.

Ich hab mir das so vorgestellt. bmp.bmBits ist der anfang des Arrays mit den ganzen Pixeln des Bildes. Und da ein Pixel 32Bit groß ist nem ich ein int Pointer und lies das Array einfach so aus.

Warum funktioniert das so nicht.
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 01.11.2005, 23:05    Titel: Antworten mit Zitat

schau mal hier ob du sowas suchst, ist zwar fürs manipulieren, auslesen wird da aber auch genutzt:

http://www.online-tutorials.net/grafik/bitmaps-manipulieren/sourcecodes-t-17-108.html
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Florian
Super JLI'ler


Alter: 37
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 01.11.2005, 23:10    Titel: Antworten mit Zitat

Hallo Fallen danke schon mal für deine Antwort.
Diesen Artikel hab ich auch schon durchgelsen. Aber soweit ich das mitbekommen hab muss ich bevor ich das BITMAP zum auslesen der Pixel verwenden kann erst anzeigen. Das brauch ich aber für meine Anwendung nicht.

Das müsste doch so auch gehen so wie ich das machen wollte.

thx schon mal
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 01.11.2005, 23:12    Titel: Antworten mit Zitat

Es wird im Artikel aber gar nicht angezeigt Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Chriss
Senior JLI'ler



Anmeldedatum: 18.08.2004
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 02.11.2005, 07:41    Titel: Antworten mit Zitat

Sollte sich das Problem nicht mit einem Typecasting lösen lassen?

int *pbmp = NULL;
pbmp = (int*)bmp.bmBits;
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Florian
Super JLI'ler


Alter: 37
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 02.11.2005, 12:59    Titel: Antworten mit Zitat

So jez hab ich das mit dem casten probiert hab ich schon vorher mal probiert hat aber nicht funktioniert. Beim ausführen kommt die Meldung nicht senden. Aber ich hab jez folgendes entdeckt der bmp.bmBits Zeiger zeigt immer auf 0000000 das kann doch gar nicht sein oder. Denn der müßte doch auf die startadresse der PixelWerte zeigen.

Danke Chriss für deine antwort.
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Slider|SD
Mini JLI'ler


Alter: 44
Anmeldedatum: 20.10.2005
Beiträge: 18
Wohnort: Gilching
Medaillen: Keine

BeitragVerfasst am: 02.11.2005, 13:56    Titel: Antworten mit Zitat

Florian hat Folgendes geschrieben:
Aber ich hab jez folgendes entdeckt der bmp.bmBits Zeiger zeigt immer auf 0000000 das kann doch gar nicht sein oder. Denn der müßte doch auf die startadresse der PixelWerte zeigen.

Dann wird es wohl ein Problem beim Laden des Bitmaps gegeben haben. Überprüfe nochmal, ob das Bitmap wirklich existiert, und du kannst ja mal den relevanten Code posten, vielleicht kann man was erkennen.
_________________
Stefan Schwarzbach
Lead Programmer & Geschäftsführer
Grotesque - Die geniale Mischung aus Gothic , Final Fantasy und Monkey Island
Silent Dreams - We Create Dreams
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Florian
Super JLI'ler


Alter: 37
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 02.11.2005, 15:27    Titel: Antworten mit Zitat

So ich hab mich jez entschieden die WINAPI funktionen dafür zu verwenden. Vieleicht werd ich später nochmal das Problem mit dem zeiger angehen. Aber scho hab ich ein neues Problem.
Ich habe ein BITMAP aber benötige ein HBITMAP gibt es da eine WINAPI funktion dafür. Ich hab mir bisher immer gedacht das HBITMAP = *BITMAP scheint aber nicht so. Kann mir da einer weiterhelfen. Hab schon in msdn gesucht nichts gefunden.

THX
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Florian
Super JLI'ler


Alter: 37
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 04.11.2005, 17:39    Titel: Antworten mit Zitat

So ich hab mal folgendes ausprobiert. Aber der bmBits Zeiger hat immer den Wert 0.

code
Code:

//Zum Laden
hbmp = LoadBitmap(hInstance,MAKEINTRESOURCE(IDB_PIC));
GetObject(hbmp,sizeof(BITMAP),&bmp);
//Zum Anzeigen
HDC hdc;
HDC hdcMem;
      
hpic = GetDlgItem(hwnd,IDC_PICTURE);
hdc = GetWindowDC(hpic);
hdcMem = CreateCompatibleDC(hdc);
SelectObject(hdcMem,hbmp);
BitBlt(hdc,0,0,bmp.bmWidth,bmp.bmHeight,hdcMem,0, 0, SRCCOPY);
DeleteDC (hdcMem);


Kann aber kein Fehler finden die Width und Height angaben stimmen aber.

Bitte um Hilfe
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum