Bitmaps und CLR-Konsolenanwendung



  • Hallo nochmal,
    ich versuche eine CLR-Konsolenanwendung zu schreiben die ein Bitmap lädt und es dann modifiziert wieder abspeichert. ich habe leider kaum Ahnung von C++. Kann mir vielleicht jemand sagen wie das geht?
    [url]
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-128603.html[/url]
    hier habe ich schonmal geguckt. Frage dazu: Dieses hdc da ist doch irgendwie die Adresse meines Bildes gespeichert. wie weise ich der Variablen oder was es ist das richtige bild zu?

    ifstream datei("D:\\Source\\Testdaten\\40_01.bmp",ios::binary|ios::in); 
    	BITMAPFILEHEADER bfh; 
    	BITMAPINFOHEADER bih; 
    	datei.read((char*)&bfh,sizeof(bfh)); 
    	datei.read((char*)&bih,sizeof(bih)); 
    
    	cout<<"Das Bild ist "<<bih.biWidth<<" x "<<bih.biHeight<<" Pixel groß"<<endl;
    	cout<<bih.biPlanes<<" "<<bih.biBitCount<<endl;
    

    Das habe ich bisher. wie geht es nun wohl weiter? ist das mit dem ifstream richtig? oder kann ich damit nur *.dat dateien einlesen? also die größe des Bildes kommen aus dem Infoheader schon richtig heraus.

    vielendank schonmal im Voraus
    Timo



  • Warum willst du ein .Net Programm schreiben(CLR Anwendung), verwendest dann aber keine .Net Funktionen?



  • jo also kurze erklärung.
    Ich bin Student und habe VB6 Vorlesung gehabt, das konnte ich recht gut dann habe ich jetzt für die semesterferien einen job an der FH angenommen zum programmieren und gesagt das ich VB6 gut kann. nun soll ich mit C++ programmieren und haben Null Ahnung.
    ich wusste bis gerade nichtmal das das ein .Net programm ist.
    die Befehle benutze ich, weil ich mir das mal so bei Google herausgesucht habe.
    was wind denn die .Net Funktionen für meinen Fall? wie gesagt, ich muss das Bitmap einlesen, ändern, neu abspeichern.



  • Hmm, hauptsächlich die Bitmap Klasse, je nachdem was du noch so alles machen willst und du unter "Bitmap ändern" verstehst.

    Aber wenn du mit C++ erst anfängst und es nicht verstehst, dann versuch erst gar net mit C++/CLI(das ist die .Net Variante) anzufangen, des geht net gut, dazu sollte man C++ schon gut beherschen, da man sonst einige Konzepte gar net blickt.

    Wenn du selber sagst das du C++ nicht kannst, solltest du dir dort vielleicht erst Literatur besorgen um dort Grundwissen zu erlangen. C++ und VB6 unterscheiden sich doch in so einigen Punkten.



  • das das irgendiwe mit der Bitmap Klasse gehen soll, habe ich auch schon gelesen. aber ich verstehe nicht wie ich mein bild da auswähle. unter "Bitmap ändern" verstehe ich, das die rechte seite ab der hälfte schwarz eingefärbt wird, so das man das bild nur noch zur hälfte sehen kann. Dann neu speichern.

    Könntet du mir nicht vielleicht den code schicken, womit ich das bitmap auswähle, also mit pfadeingabe. dann einmal sagen wie ich auf die Pixel zugreife. Oder ist das kompliziet und dauert zu lange das hier zu posten?



  • Net falsch verstehen, aber ich mach doch net deine Aufgaben 😉

    In der MSDN Library gibts genug Beispiele zur Bitmap Klasse. Die meisten in C#, weil das eigentlich die präferierte .Net Sprache ist, aber die lassen sich ohne Problem ein C++/CLI portieren weil nur die Syntax ein wenig anders ist. Aber da dreht man sich wieder im Kreis, weil man dafür halt C++ richtig können sollte 🙂

    In klassischen C++ geht das ja auch alles, da muss man halt nur andere Mittel verwenden. aber im Internet gibts massig Texte dazu.

    Wenn du schreibst:

    nun soll ich mit C++ programmieren

    , bist du dir sicher das du überhaupt C++/CLI benutzen darfst. Meist ist mit C++ und wirklich das klassische C++ gemeint und nicht C++/CLI für das sich wieder ganz andere Anforderungen an die Anwendung ergeben.



  • ich sollte wohl mein Projekt als Konsolenanwendung anlegen. und da du sagst das das dann C++/CLI ist dann soll ich das wohl machen. mal ganz doof was ist eigentlich der unterschide? was kann man mit dem einem machen was mit dem anderen nicht geht? ich suche nun schon echt lange rum. aber ich kann nichts inden was ich verstehe. Da steht dann immer was mit forms und Buttons aber sowas habe ich ja alles nicht. ist ja nur n dos-fenster.
    dann finde ich sowas
    Bitmap ( String^ filename )
    dann füge ich das ein, dann kommt n fehler. das ich echt ätzend.

    ist mir schon klar, das du nicht meine aufgaben machen willst. dachte nur, wenn du mir das schreibst vestehe ich das evtl. und kann dann weiter machen. das programm soll auch noch aus nem AVI File die einzelbilder rausholen. deshalb ist es ja auch damit alleine noch nicht getan.



  • Nicht böse nehmen, aber ich glaube du bist mit der Aufgabe einfach völlig überfordert, da du wie du ja selbst sagst nichtmal Grundwissen in C++ hast.

    Wenn du ne CLR Konsolenanwendung auswählst, dann benutzt du .Net(CLR ist ja nur die Abkürzung für Common Language Runtime), du kannst aber genauso eine ne normale Konsolenanwendung erstellen ohne .Net zu benutzen. Der Projekttyp sagt absolut gar nichts darüber aus ob du eine Technologie benutzt oder nicht.

    Wenn du dich fragst was da die Unterschiede sind, kann ich dich nur auf Standardquellen wie Wikipedia,Google und Co. verweisen. Wenn du meinst, du findest nur Dinge die du nicht verstehst, dann fehlen dir einfach Grundlagen. Die brauch man, muss man sich selbst erarbeiten und ohne die kommt man nicht weit. Deshalb mein Rat dich erstmal mit normaler C++ Einsteigerliteratur zu beschäftigen und die Sprache lernen sonst wirst du noch ewig rumprobieren und doch nichts verstehen.



  • du wirst wohl recht haben das ich damit überfordert bin. warum sollte ich dir böse sein? ist halt tatsache.
    meinst du mit C++ Grundladen cin und cout algorithmen schreiben um zahlen zu adieren etc.? weil das bekomme ich gerade noch hin*G* endlich kann ich mal was 😉
    hast nochmal n tip was ich spetiell angucken sollte? habe mir gerade ein buch ausgeliehen C++ grundlagen aber das hat so über 1000 seiten wenn ich das von vorne an lese dann sind die semesterferien rum und das programm ist immer noch nicht fertig.
    wäre nett wenn du mir nochmal antwortest. das war dann von mir auch heute wohl erstmal der letzte Beitrag.
    Danke
    machs gut


Anmelden zum Antworten