System.IO.Stream in native?
-
Gibt es eine Alternative zu in native c++ zu einem System.IO.Stream? Wenn ja welche wäre das und brauche ich dazu einen extra header oder ist es standartheader?
2. Gibt es eine Alternative zu System.Drawing.Bitmap? Hier gilt das selbe wie bei dem Stream. Ich versuche einen Algorithmus von c# auf c++ umzuschreiben und zwar hätt ich das gern in native c++.Also kennt ihr da was?
-
Streams gibt es in C++, die nennen sich std::iostream. Für Bitmaps gibt es afaik nichts im ANSI-Standard, da mußt du dich nach Alternativen umsehen (z.B. in der MFC).
-
<iostream> kannst Du Für Syso/i nehmen.
Aber Grafikzeug funktioniert nicht mit Standard C++, das bietet nämlich keine Grafik an. Nutze dafür QT/wxWidgets/OpenGL/DirectX...
Ha, da war er schneller.
-
wieso directx, opengl? ich muss nur ne methode wie getpixel und setpixel haben
-
Du willst ja eine grafische Oberfläche haben. Entweder, Du willst eine GUI haben oder Du möchtest die Grafiken hardwarebeschleunigt nutzen. Aber vermutlich ist UI-Zeug das, was Du brauchst.
-
ich will keine grafische oberfläche
ich will ein Bild bearbeiten. dazu brauch ich einen ByteStream und eine klasse die bitmaps öffnen kann und bearbeiten kann. Siehe Bitmap in .NET .
Also das einzige was ich davon brauch ist. Eine Methode zum einen Pixel rausnehmen(Also farbe bekommen) und wieder die Farbe setzten sprich GetPixel() Und SetPixel()Für was?
Nun ja es handelt sich um einen in c# geschriebenen http://de.wikipedia.org/wiki/Steganographie Algorithmus. Und den möchte ich nun gerne in native c++ coden.
-
thefiloe schrieb:
ich will keine grafische oberfläche
ich will ein Bild bearbeiten. dazu brauch ich einen ByteStream und eine klasse die bitmaps öffnen kann und bearbeiten kann. Siehe Bitmap in .NET .
Also das einzige was ich davon brauch ist. Eine Methode zum einen Pixel rausnehmen(Also farbe bekommen) und wieder die Farbe setzten sprich GetPixel() Und SetPixel()Für was?
Nun ja es handelt sich um einen in c# geschriebenen http://de.wikipedia.org/wiki/Steganographie Algorithmus. Und den möchte ich nun gerne in native c++ coden.Jeder istream implementiert read(), womit du rohe Bytes lesen kannst.
Wegen Bitmaps musst du dir eine seperate Bibliothek suchen.
-
ok danke
Dann suche ich mal eine Bibliothek. Wenn jemand vll. eine kennt wäre ich sehr dankbar.
-
Wenn du Bitmaps nur lesen, etwas verändern und wieder speichern möchtest, kannst du das (zumindest für 24 und 32 Bit Bitmaps ohne Farbpalette) recht einfach selber machen.
Die Spezifikation findest du tausendfach im Netz, du musst nur im Hinterkopf behalten, dass die Zeilen DWORD-aligned sind, du also dementsprechend bis zu 3 Byte pro Ratserzeile zusätzlich reservieren musst.Oder du nimmst Bibliotheken wie SFML, freeimage, GDI+ (nur Windows) oder Ähnliches.
-
Für was kleines Schlankes könntest du stb_image nehmen. Wenn du ein möglichst komfortables C++-Interface haben willst, ist vielleicht SFML etwas für dich.