streambuffer zu klein? Brauche Hilfe!
-
Für ein Schulprojekt (Techniker) soll ich Daten einer Wetterstation auslesen und visualiesieren. Meine Funktionen für Linien,Kreise, Boxen funktionieren schon, leider machen mir aber Bitmaps probleme. 70*70 PIxel grosse werden korekt angezeigt sobald es grösser wird ist sieht die Grafik merkwürdig aus. Ich hoffe jemand kann helfen.
#include <fstream>
#include <iostream>
#include <windows.h>
#include <string>using namespace std; void loadbmp(HDC fenster, int posx, int posy, int sizex, int sizey,char* datei); int main() { HWND hWnd = FindWindow( "ConsoleWindowClass", NULL ); if( !hWnd ) return 1; HDC hDC = GetDC( hWnd ); if( !hDC ) return 1; loadbmp(hDC,20,20,70,70,"test.bmp"); loadbmp(hDC,120,120,200,200,"test21.bmp"); loadbmp(hDC,200,90,70,70,"test31.bmp"); return 0; } void loadbmp(HDC fenster, int posx, int posy, int sizex, int sizey, char* datei) { ifstream in(datei); if (!in.is_open()) cout << "Datei existiert nicht." << endl; else { char Puffer[55]; in.read(Puffer,52); for (int x=sizex;x>0;--x) { in.read(Puffer,2); //Nach jeder Zeile 2 byte Müll for(int y=0;y<sizey;++y) { in.read(Puffer,3); SetPixel(fenster,y+posy,x+posx,RGB(Puffer[2],Puffer[1],Puffer[0])); } } in.close(); } }
Screenshots sende ich gerne auf Anfrage zu.
Wer auch noch eine gute Lösung für das Auslesen über den COM Port hat,nur her damit.
-
-> Auslesen über COM-Por findest du in der Konsolen-FAQ etwas (Ströme lenken).
-> Grafik in der Konsole halte ich allgemein für etwas, sagen wir mal, interessant. Warum möchte man unbedingt in eine textbasierte Umgebung Bilder zeichnen?Also ich rate dir zu einer Win-Applikationen wenn du Bilder anzeigen möchtest.
MfG SideWinder
-
Na wirklich brauchen tut man das wohl nicht, die Grafikausgabe soll nur ein zusatz zum eigentlichen Programm werden. Und da ich jetzt auf dieses Problem gestoßen bin würde ich es gerne lösen, ich habe gestern Stunden damit verbracht. Ich bin doch absoluter Neuling in C++ erst seit Feb05 an der Technikerschule in Weilburg.