screenshot
-
geeky schrieb:
Image image(filename);Sicher das du das willst ? - Die Datei <filename> muss dann schon existieren und mit Hilfe der Datei wird dann nen Bild im Speicher angelegt.
Außerdem musst Du den String <filename> in Unicode umwandeln (guck dir mal MultiByteToWideChar() an...) und nicht einfach so übergeben
Nimm statt Image lieber Bitmap, Bitmap ist von Image abgeleitet und kann auch jpegs, pngs etc. speichern. Du kannst damit aber auch nen Bild im Speicher anlegen, was vorher nicht erst als Datei existieren muss - z.B. mit BITMAPINFO und nem Pointer auf Pixeldaten kannste dann nen Bild initialisieren...
Achja: GetEncoderClsid() ist keine bereits existierende Funktion, sie wird in einem Beispiel in der MSDN/PSDK-Doku angegeben - Die Funktion musst du aus der Doku kopieren (oder dir selber bauen ;D)
hi!!! hilfe!! ich hab doch vorher schon mit bitmap gearbeitet....HBITMAP aBmp;
da war ja das problem mit dem kopremierten speichern!!!! deshalb wurde mir geraten image zu nehmen weil man da mit mit der hand kompremieren muss, sondern das geht automatisch!! ich fühl mich jetzt ein bisschen in die irre geführt!!??? was soll ich jetzt tun? helpDie Datei <filename> muss dann schon existieren und mit Hilfe der Datei wird dann nen Bild im Speicher angelegt.wie kann ich so ein image-datei anlegen????
thx

-
markoo schrieb:
geeky schrieb:
Was hast Du damit vor ?
Image image(L+filename);in der msdn stand das so drinenn....will einfahc unter dem filenamen speichern...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlusreference/classes/imageclass/imagemethods/imagesavemethods/save_39filename_clsidencoder_encoderparams.asp
das steht da so mit L...was die da wollen!???Also bei mir steht das da nirgend so - sondern immer nur L"image/png"
Damit wird afaik dann die Zeichenfolge in Unicode umgewandelt (wenn du direkt ein String-Literal - hieß das so? - im Code stehen hast).
Da filename bei dir aber als Nicht-Unicode-Zeichenkette vorliegt musst du es mit MultiByteToWideChar entsprechend umwandeln.
markoo schrieb:
ich hab doch vorher schon mit bitmap gearbeitet....HBITMAP aBmp;
da war ja das problem mit dem kopremierten speichern!!!! deshalb wurde mir geraten image zu nehmen weil man da mit mit der hand kompremieren muss, sondern das geht automatisch!! ich fühl mich jetzt ein bisschen in die irre geführt!!??? was soll ich jetzt tun?HBITMAP ist ein HANDLE zu einem Bitmap - hier war aber jetzt die GDI+-Klasse Bitmap gemeint

markoo schrieb:
wie kann ich so ein image-datei anlegen????
Schau dir mal die Bitmap Constructors an

-
Also bei mir steht das da nirgend so - sondern immer nur L"image/png"
Damit wird afaik dann die Zeichenfolge in Unicode umgewandelt (wenn du direkt ein String-Literal - hieß das so? - im Code stehen hast).
Da filename bei dir aber als Nicht-Unicode-Zeichenkette vorliegt musst du es mit MultiByteToWideChar entsprechend umwandeln.
int dc2bitmap(HDC hdc, int width, int height, char *filename) { HDC hdc2; #define MAX_CHARACTERS 81 wchar_t file_name[MAX_CHARACTERS]; // String in Unicode umwandeln mbstowcs(work, filename, MAX_CHARACTERS); // Bitmap erstellen Bitmap(file_name, FALSE); // FALSE specifies that color correction is not enabled Graphics graphics(hdc); // Create an Image object based on a PNG file. //Image image(filename); // Draw the image. graphics.DrawImage(&image, width, height); // Construct a Graphics object based on the image. Graphics imageGraphics(&image); // Alter the image. SolidBrush brush(Color(255, 0, 0, 255)); imageGraphics.FillEllipse(&brush, 20, 30, 80, 50); // Draw the altered image. graphics.DrawImage(&image, 200, 10); // Save the altered image. CLSID pngClsid; GetEncoderClsid("image/png", &pngClsid); image.Save(filename, &pngClsid, NULL); return 1; }hi bitte schaut mal den code an!!! ich hab jetzt wenigstens mal in unicode gewandelt!! und ne bitmap erstellt ( Creates a Bitmap object based on an image file) was soll ich nun tun??? bitte um help!!!
thx

-
Hast du auch ein wenig Ahnung von C++?
-
WebFritzi schrieb:
Hast du auch ein wenig Ahnung von C++?
ja warum? aber nicht von bitmap;-(
cu
-
falls du was gegen das define hast....das nicht so wichtig....da gehört oben zu den includes rauf!!!! aber wie mach ich nun das speichern?
thx

-
// Bitmap erstellen Bitmap(file_name, FALSE);Was ist das?
-
WebFritzi schrieb:
// Bitmap erstellen Bitmap(file_name, FALSE);Was ist das?
das ist das: Creates a Bitmap object based on an image file.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlusReference/Classes/BitmapClass/BitmapConstructors/Bitmap_56filename_useIcm.aspdas wurde mir ja empfohlen!!!!
thx

-
Nein, du kannst kein C++. Lies dir nochmal ein Tutorial durch!
-
WebFritzi schrieb:
Nein, du kannst kein C++. Lies dir nochmal ein Tutorial durch!
hi...habs überlesen...is ja ein constructor;-)
#define MAX_CHARACTERS 81 int dc2bitmap(HDC hdc, int width, int height, char *filename) { HDC hdc2; Bitmap* pBitmap; wchar_t file_name[MAX_CHARACTERS]; // String in Unicode umwandeln mbstowcs(work, filename, MAX_CHARACTERS); // Bitmap erstellen pBitmap = new Bitmap(file_name, FALSE); // FALSE specifies that color correction is not enabled delete pBitmap; return 1; }passts nun??? wie mach ich das weiter????
thx

-
OK, du hast's kapiert.
Das new brauchst du aber AFAIK nicht. Du kannst die GDI+ - Objektinstanzen IMHO alle auf dem Stack anlegen.EDIT: Bekommst du denn jetzt noch irgendwelche Linkerfehler, oder hast du jetzt alles ordentlich eingebunden gekriegt?
-
WebFritzi schrieb:
OK, du hast's kapiert.
Das new brauchst du aber AFAIK nicht. Du kannst die GDI+ - Objektinstanzen IMHO alle auf dem Stack anlegen.EDIT: Bekommst du denn jetzt noch irgendwelche Linkerfehler, oder hast du jetzt alles ordentlich eingebunden gekriegt?
so gehts ohne error:
int dc2bitmap(HDC hdc, int width, int height, char *filename) { HDC hdc2; Bitmap* pBitmap; wchar_t file_name[MAX_CHARACTERS]; // String in Unicode umwandeln mbstowcs(file_name, filename, MAX_CHARACTERS); // Bitmap erstellen pBitmap = new Bitmap(file_name, FALSE); // FALSE specifies that color correction is not enabled delete pBitmap; return 1; }aber das new braucht er anscheinend!!! sonst bekomm ich einen error! was soll ich als nächstes machen???
danke webfritzi, das du an mich glaubst;-)
thx
-
markoo schrieb:
was soll ich als nächstes machen???
Du sollst die Dokumentation lesen. Wenn noch etwas unklar ist, kannst Du gern nochmal nachfragen, aber vielleicht etwas gezielter.
-
-King- schrieb:
markoo schrieb:
was soll ich als nächstes machen???
Du sollst die Dokumentation lesen. Wenn noch etwas unklar ist, kannst Du gern nochmal nachfragen, aber vielleicht etwas gezielter.
hi, ja jetzt hab ich ein Bitmap object erstellt! wie kann ich kann ich die hdc bildinformation da rein speichern???
thx

-
Beschäftige dich doch ein wenig mit der Doku. Dann wirst du es auch herausfinden.
-
WebFritzi schrieb:
Beschäftige dich doch ein wenig mit der Doku. Dann wirst du es auch herausfinden.
ok gut;-) bitte gibs mir den link, weil ich bin mir nicht sicher ob ich das richtige vor hab....!?? danke webdritzi!

thx

-
Den Link zur Doku hast du doch jetzt schon des öfteren bekommen

-
flenders schrieb:
Den Link zur Doku hast du doch jetzt schon des öfteren bekommen

jo! aber ich weiß nicht mehr genau welcher mir zum erfolg verhilft;-( !??
thx

-
Du solltest ja auch selber etwas rumstöbern:
Schau dich mal hier um: Bitmap Class und Image Class
-
flenders schrieb:
Du solltest ja auch selber etwas rumstöbern:
Schau dich mal hier um: Bitmap Class und Image Class
ok ok.... ich kann ja auch da mir was abschauen: ???
http://www.c-plusplus.net/forum/viewtopic.php?t=64679
hmm? brauch ich ja nen BITMAPINFOHEADER was ich gesehn habe...?thx
