Hallo Liebes Forum.
Ich möchte bei meinem Programm über
[DllImport("user32.dll")]
private static extern Int32 SystemParametersInfo(UInt32 uiAction, UInt32 uiParam, String pvParam, UInt32 fWinIni);
private static UInt32 SPI_SETDESKWALLPAPER = 20;
private static UInt32 SPIF_UPDATEINIFILE = 0x1;
mit dem Befehl
string Filename = "pfad/1.jpg";
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Filename, SPIF_UPDATEINIFILE);
das Hintergrundbil ändern.
Nun möchte ich das aber mit einem Bild aus dem Resource Ordner tun.
Wie kann ich das in die tat um setzen?
Lokal speichern mit diesem Befehl:
System.IO.File.WriteAllBytes("C:/2.jpg", MeinProjekt.Properties.Resources._2);
kann ich die Bilder nicht da diese Fehlermeldung erscheint :
kann nicht von "System.Drawing.Bitmap" in "byte[]" konvertiert werden.
Für tipps und anmerkungen sind erwünscht 😃
Liebe Grüße,
Trisi
Hallo Trisi und Herzlich Willkommen hier im Forum,
Die Fehlermeldung ist doch schon recht eindeutig, ein Object Bitmap ist nun mal kein byte[]
Hast Du Dir schon einmal die Methoden von dem Object Bitmap angeschaut?
Viele Grüße
Lars
Hallo,
wenn es dein Programm ist kannst du nicht einfacher das Hintergrundbild ändern als über die WinAPI? ZB über eine Eigenschaft innerhlab deines Programms?
Zum Speichern des Bildes: Lies das Bild in ein Image
-Objekt und dort gibts dann die Save
-Methode.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Du willst also den Typ Image in ein Bytearray kriegen.
Du kannst ein Bild mit image.Save in einen Stream schreiben. Schreibs in einen Memorystream und dann stream.ToArray (ich glaube das gibts).
Hallo chilic,
Interessante Alternative, um ein Bitmap zu speichern,
warum dann erst der Umweg über das byte[]
@gfoidl soweit ich weiß, ist Bitmap von Image abgeleitet
Viele Grüße
Lars
Hallo Lars Schmitt,
@gfoidl soweit ich weiß, ist Bitmap von Image abgeleitet
ja das ist so. Ob Image od. Bitmap ist für die Save-Methode in diesem Fall egal - auf jedenfall ist es so einfacher und besser als die byte[] zu ermitteln und diese dann per FileStream zu schreiben.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Ja ok da habt ihr natürlich recht, das war Krampf.
Die ganzen Fakten drum rum haben irgendwie vom eigentlichen Problem abgelenkt. Ich hatte nur noch realisiert dass ein Bild in ein byte[] gewandelt werden soll, ohne zu wissen wozu eigentlich.
Danke für die rasanten Antworten 😃
Also wie kompliziert man auch denkt " stream erstellen " dann Stream auslesen und irgendtwie speichern ... war es doch soo einfach 😄
Falls ihr es wissen wollt :
MeinProjekt.Properties.Resources.DasBild.Save("Pfad", System.Drawing.Imaging.ImageFormat.Bmp);
Danke jetzt kann ich die lokal gespeicherten Bilder nutzen um Wallpaper einzustellen.
Grüße Trisi 😃