Moin zusammen,
ich hab da mal ein Problem!
Wenn ich ein Image aus der PictureBox gespeichert habe (beide Beispiele):
1) pb.Image.Save(sPfad, System.Drawing.Imaging.ImageFormat.Png);
2) pb.Image.Save(sPfad, System.Drawing.Imaging.ImageFormat.Icon);
und das bild.ico dann als NotifyIcon nutzen möchte:
xNI.Icon = new System.Drawing.Icon(@sPfadZumIcon);
Bekomme ich eine Fehlermeldung:
Fehlermeldung:
System.ArgumentException: "Das Argument picture muss ein Bild sein, das als Icon verwendet werden kann."
Allerdings scheint das Logo an sich korrekt zu sein, weil wenn ich das selbe Bildchen als .png speichere und mit einem Tool PNG2ICO umwandeln lasse, kann ich dieses doch nutzen....
Habe das Bild als 16x16 und 32x32 gespeichert... Außerdem kann ich das bild.ico mit einem Ico-Bearbeitungstool öffnen und es wird korrekt angezeigt.
Was mache ich falsch?
Viele Grüße
Christian
Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.
Funktioniert es denn mit einem anderen Icon?
Schau auch mal in C#: Argument 'picture' must be a picture that can be used as an Icon.
Du kannst aber auch direkt das Icon aus dem Image zuweisen (ohne als Datei zu speichern):
Bitmap bitmap = new Bitmap(image, image.Size);
notifyIcon.Icon = Icon.FromHandle(bitmap.GetHicon());
Um auszuschließen, dass es an der Dateiverarbeitung liegt, weiß dem NotifyIcon
einfach den Stream vom Image zu.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ja mit anderen Bildern (.ico) klappt es, auch wenn ich meins von png nach ico umwandeln lasse, mit dem direkten zuweisen ist auch eine gute Idee. Probiere ich noch mal aus.
Wie weise ich den Stream den Image zu?
Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.
Siehe Beitrag von Th69, ansonsten hilft auch ein Blick in die Doku - dafür ist sie da.
NotifyIcon Klasse (System.Windows.Forms) bzw https://docs.microsoft.com/de-de/dotnet/api/system.drawing.icon.-ctor?view=dotnet-plat-ext-6.0
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Mit der direkten Zuweisung funktioniert das direkt ohne Fehler 👍
Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.