Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Florian Super JLI'ler

Alter: 37 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 01.11.2005, 22:25 Titel: Bitmap pixel Werte auslesen |
|
|
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 |
|
 |
Fallen JLI MVP


Alter: 41 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 01.11.2005, 23:05 Titel: |
|
|
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 |
|
 |
Florian Super JLI'ler

Alter: 37 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 01.11.2005, 23:10 Titel: |
|
|
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 |
|
 |
Fallen JLI MVP


Alter: 41 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 01.11.2005, 23:12 Titel: |
|
|
Es wird im Artikel aber gar nicht angezeigt  _________________ "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 |
|
 |
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 02.11.2005, 07:41 Titel: |
|
|
Sollte sich das Problem nicht mit einem Typecasting lösen lassen?
int *pbmp = NULL;
pbmp = (int*)bmp.bmBits; |
|
Nach oben |
|
 |
Florian Super JLI'ler

Alter: 37 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 02.11.2005, 12:59 Titel: |
|
|
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 |
|
 |
Slider|SD Mini JLI'ler
Alter: 44 Anmeldedatum: 20.10.2005 Beiträge: 18 Wohnort: Gilching Medaillen: Keine
|
Verfasst am: 02.11.2005, 13:56 Titel: |
|
|
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 |
|
 |
Florian Super JLI'ler

Alter: 37 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 02.11.2005, 15:27 Titel: |
|
|
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 |
|
 |
Florian Super JLI'ler

Alter: 37 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 04.11.2005, 17:39 Titel: |
|
|
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 |
|
 |
|