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.

Frage stellen und sofort Antwort erhalten

Verwandte Fragen

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 ä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]

Können in VB.NET 2003 in einer ImageList neben Icons auch deren Namen gespeichert werden?

In **VB.NET 2003** (Visual Studio .NET 2003) bietet die **ImageList**-Komponente keine Möglichkeit, neben den Bildern (Icons) auch deren Namen oder andere Metadaten direkt zu speichern. Die **Ima... [mehr]

Ist es in VB.NET 2003 sinnvoll, globale Variablen in einem Modul für den Zugriff von überall aus vorzuhalten?

Das Vorhalten von Variablen in einem Modul in VB.NET 2003 ist technisch möglich und wird häufig genutzt, um sogenannte „globale Variablen“ bereitzustellen. Allerdings ist dies au... [mehr]

Gibt es einen relevanten Grund, warum in VB.NET 2003 'If...Then...' häufiger verwendet wird als 'Select...Case...', obwohl 'Select...Case...' übersichtlicher ist?

In VB.NET 2003 (und auch in anderen Versionen) gibt es keinen technischen Grund, warum „If...Then...Else“ grundsätzlich dem „Select...Case“ vorgezogen werden sollte. Beide... [mehr]

Warum zeigt die TreeView in VB.NET 2003 einen horizontalen Scrollbalken, obwohl alle Einträge mindestens 30 px Abstand vom rechten Rand haben?

Das Verhalten, dass in einer `TreeView`-Steuerung unter VB.NET 2003 ein horizontaler Scrollbalken angezeigt wird, obwohl alle Einträge ausreichend Abstand zum rechten Rand haben, kann mehrere Urs... [mehr]

Wie zeigt man in VB.NET 2003 in einer ListView die Icons versteckter Dateien halbtransparent an?

Um in VB.NET 2003 in einer `ListView` die Icons versteckter Dateien halbtransparent (wie im Windows Explorer) darzustellen, sind mehrere Schritte nötig, da die Standard-ListView-Steuerung dies ni... [mehr]

Warum erkennt VB.NET 2003 Date.TryParse nicht als Member von Date?

Der Fehler tritt auf, weil die Methode `Date.TryParse` erst ab .NET Framework 2.0 eingeführt wurde. Visual Basic .NET 2003 basiert jedoch auf .NET Framework 1.1, in dem es die Methode `TryParse`... [mehr]

Wie sortiert man in VB.NET 2003 Datums- oder Größendaten in einem ListView?

Um in VB.NET 2003 die Einträge eines `ListView` nach Datum oder Größe zu sortieren, musst du einen benutzerdefinierten Sortierer implementieren, da die Standard-Sortierung nur nach Tex... [mehr]

Wie kann ich in VB.NET 2003 an einen bestehenden String weitere Worte mit definiertem Abstand anhängen, ohne den String neu zu rendern?

In VB.NET 2003 (also .NET Framework 1.1) sind Strings unveränderlich (immutable). Das bedeutet: Jedes Mal, wenn du einen String veränderst (z. B. durch Anhängen), wird intern ein neuer... [mehr]