Wie kann ein in eine PictureBox geladenes Icon mit VB.NET 2003 wieder als Icon gespeichert werden?

Antwort

Um ein in eine `PictureBox` geladene Icon-Datei in VB.NET 2003 wieder als `.ico`-Datei zu speichern, musst du beachten, dass die `PictureBox.Image`-Eigenschaft ein `Image`-Objekt ist. Das direkte Speichern als Icon ist nicht ohne Weiteres möglich, da das .NET Framework 1.1 (VB.NET 2003) keine direkte Unterstützung für das Speichern von `Image`-Objekten als `.ico` bietet. Hier ist ein möglicher Weg, wie du das machen kannst: 1. **Icon laden und in PictureBox anzeigen:** ```vb.net Dim icon As New Icon("deinicon.ico") PictureBox1.Image = icon.ToBitmap() ``` 2. **Icon aus PictureBox speichern:** Da `PictureBox1.Image` ein `Bitmap` ist, kannst du es nicht direkt als `.ico` speichern. Du musst das Bitmap wieder in ein Icon umwandeln. Das geht nur über einen Umweg: ```vb.net ' Bitmap aus PictureBox holen Dim bmp As Bitmap = CType(PictureBox1.Image, Bitmap) ' Bitmap in einen Stream speichern Dim ms As New System.IO.MemoryStream() bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png) ms.Position = 0 ' Aus dem Stream ein Icon erzeugen (Achtung: Das Icon ist dann 32x32 und ohne Transparenz) Dim iconHandle As IntPtr = bmp.GetHicon() Dim newIcon As Icon = Icon.FromHandle(iconHandle) ' Icon speichern Using fs As New System.IO.FileStream("neu.ico", System.IO.FileMode.Create) newIcon.Save(fs) End Using ``` **Wichtige Hinweise:** - Die Methode `GetHicon()` erzeugt ein Icon aus einem Bitmap, aber Transparenz und Farbtiefe können verloren gehen. - Das Ergebnis ist nicht immer ein vollwertiges Windows-Icon mit mehreren Auflösungen und Farbtiefen. - Für komplexere Icon-Bearbeitung empfiehlt sich eine externe Bibliothek oder ein Tool. **Weitere Informationen:** - [Microsoft Doku zu Icon-Klasse](https://learn.microsoft.com/de-de/dotnet/api/system.drawing.icon) - [Microsoft Doku zu Bitmap.GetHicon](https://learn.microsoft.com/de-de/dotnet/api/system.drawing.bitmap.gethicon) Das Vorgehen ist in VB.NET 2003 etwas eingeschränkt, da viele moderne Features fehlen.

KI fragen

Verwandte Fragen

Wie lade ich mit VB.NET 2003 ein Icon als Image in eine PictureBox?

Um in VB.NET 2003 ein Icon (.ico-Datei) in eine PictureBox als Image anzuzeigen, musst du das Icon zunächst in ein Bitmap-Objekt umwandeln, da die PictureBox kein Icon direkt anzeigen kann, sonde... [mehr]

Wie lädt man in VB.NET 2003 ein Icon in eine PictureBox?

In VB.NET 2003 kannst du ein Icon in eine PictureBox laden, indem du das Icon zuerst in ein Bitmap-Objekt umwandelst, da die PictureBox kein Icon-Objekt direkt anzeigen kann. Hier ein Beispiel: ```vb... [mehr]

Wie ermittelt man in VB.NET 2003 die TransparentColor beim Extrahieren eines Icons mit SHGetFileInfo?

In VB.NET 2003 gibt es keine direkte Möglichkeit, die Transparenzfarbe (TransparentColor) eines Icons zu ermitteln, das mit `SHGetFileInfo` extrahiert wurde, da das von `SHGetFileInfo` zurüc... [mehr]

Wie speichere ich in VB.NET 2003 ein mit SHGetFileInfo extrahiertes Icon unter einem anderen Namen?

Um ein mit `SHGetFileInfo` extrahiertes Icon in VB.NET 2003 unter einem anderen Namen zu speichern, gehst du wie folgt vor: 1. **Icon extrahieren:** Mit `SHGetFileInfo` erhältst du einen Handle... [mehr]

Welchen Datentyp hat der Wert für PictureBox.SizeMode in VB.NET 2003?

Der Wert für die Eigenschaft `PictureBox.SizeMode` in VB.NET 2003 hat den Datentyp [`PictureBoxSizeMode`](https://learn.microsoft.com/de-de/dotnet/api/system.windows.forms.pictureboxsizemode?view... [mehr]

Wie speichere ich in VB.NET 2003 ein vorhandenes Icon (*.ico) als PNG-Bild?

In VB.NET 2003 kannst du ein vorhandenes Icon (*.ico) als PNG-Bild speichern, indem du das Icon in ein Bitmap-Objekt konvertierst und dieses dann als PNG exportierst. Die .NET Framework-Version von 20... [mehr]

Wie ändere ich in VB.NET 2003 nachträglich das Icon eines bestimmten TreeNode?

Um in VB.NET 2003 nachträglich das Icon (genauer: das Image) eines bestimmten TreeNode in einem TreeView zu ändern, gehst du wie folgt vor: 1. **Stelle sicher, dass dein TreeView eine Image... [mehr]

Wie klappe ich in VB.NET 2003 per Code ein bestimmtes Untermenü eines ContextMenus auf?

In VB.NET 2003 (also .NET Framework 1.1) gibt es keine direkte Möglichkeit, ein Untermenü (Submenu) eines ContextMenus per Code aufzuklappen. Das liegt daran, dass das klassische `ContextMen... [mehr]

Wie kann ich in VB.NET 2003 markierten Text in einer RTF-Box per Maus verschieben?

Um in VB.NET 2003 markierten Text innerhalb einer RichTextBox per Drag & Drop mit der Maus zu verschieben, musst du einige Ereignisse und Einstellungen nutzen, da die Standard-RichTextBox dieses V... [mehr]

Wie heißt in VB.NET 2003 der KeyCode für das Hochkomma (')?

In VB.NET 2003 entspricht das Hochkomma (Apostroph, also `'`) dem KeyCode **emQuotes**. Du kannst also in einem KeyDown- oder KeyPress-Ereignis so darauf prüfen: ```vb.net If e.KeyCode =... [mehr]