Das von dir beschriebene Verhalten liegt nicht an `File.OpenRead`, sondern an der Art und Weise, wie das Bild in einem Steuerelement (z. B. `PictureBox`) angezeigt wird. In Windows Forms (auch in VB.N... [mehr]
Das von dir beschriebene Verhalten in VB.NET 2003, dass ein 1 px breites Bild nach dem Laden mit `Image.FromStream` plötzlich `img.Width = 15` ergibt, kann mehrere Ursachen haben. Hier sind die häufigsten Gründe: 1. **PNG-Metadaten oder DPI-Einstellungen** PNG-Bilder können DPI-Informationen (Dots Per Inch) enthalten. Die .NET GDI+ Bibliothek (System.Drawing) interpretiert diese DPI-Angaben manchmal falsch, besonders in älteren Versionen wie .NET 1.1 (Visual Studio 2003). Beispiel: Ein Bild mit 1 px Breite und 96 DPI kann bei einer fehlerhaften Interpretation als breiter angezeigt werden, weil GDI+ versucht, die physische Größe zu berücksichtigen. 2. **Defektes oder nicht unterstütztes PNG-Format** Manche PNGs, die mit bestimmten Tools erstellt wurden, enthalten ungewöhnliche Header oder Metadaten, die GDI+ nicht korrekt liest. Das kann dazu führen, dass die Bildgröße falsch ausgelesen wird. 3. **Stream-Handling** Wenn der Stream (`File.OpenRead`) nach dem Laden nicht korrekt geschlossen oder zurückgesetzt wird, kann es zu Problemen kommen. Allerdings ist das bei deinem Beispiel eher unwahrscheinlich, da `Image.FromStream` den Stream direkt liest. 4. **Fehler im .NET Framework 1.1** In .NET 1.1 (Visual Studio 2003) gab es einige Bugs im Umgang mit bestimmten Bildformaten, insbesondere PNG. Diese Bugs wurden in späteren Versionen behoben. **Was kannst du tun?** - Prüfe das Bild mit einem anderen Tool (z.B. IrfanView, GIMP), ob es wirklich 1 px breit ist. - Speichere das Bild ggf. neu ab, um fehlerhafte Metadaten zu entfernen. - Teste das Laden des Bildes in einer neueren .NET-Version, um zu sehen, ob das Problem weiterhin besteht. - Alternativ kannst du das Bild mit `Bitmap` statt `Image` laden, z.B.: ```vb.net Dim bmp As New Bitmap("bild.png") MsgBox(bmp.Width) ``` **Fazit:** Das Problem liegt sehr wahrscheinlich an der Art, wie GDI+ in .NET 1.1 PNG-Bilder und deren Metadaten interpretiert. In neueren .NET-Versionen tritt dieses Problem in der Regel nicht mehr auf. Weitere Infos: - [Microsoft: Image.FromStream Method](https://learn.microsoft.com/en-us/dotnet/api/system.drawing.image.fromstream) - [Stack Overflow: PNG width/height wrong in .NET](https://stackoverflow.com/questions/1162119/why-does-system-drawing-image-fromfile-return-the-wrong-width-and-height-for-png) Wenn du das Bild zur Verfügung stellst, kann man es genauer analysieren.
Das von dir beschriebene Verhalten liegt nicht an `File.OpenRead`, sondern an der Art und Weise, wie das Bild in einem Steuerelement (z. B. `PictureBox`) angezeigt wird. In Windows Forms (auch in VB.N... [mehr]
Um in VB.NET 2003 ein Thumbnail eines Bildes zu erstellen und zur Weiterverwendung bereitzustellen, kannst du die Methoden der `System.Drawing`-Bibliothek nutzen. Hier ein einfaches Beispiel, wie du e... [mehr]
In VB.NET 2003 gibt es einen wichtigen Unterschied zwischen den Ereignissen `Resize` und `SizeChanged` eines Formulars (`Form`): **1. Resize-Ereignis (`frm.Resize`):** - Dieses Ereignis wird ausgel&o... [mehr]
In VB.NET 2003 ist das Gegenteil von `Path.Combine(...)` das Zerlegen eines zusammengesetzten Dateipfads in seine Einzelteile (Verzeichnisse und Dateiname). Während `Path.Combine` mehrere Teile z... [mehr]
Richtig, in VB.NET 2003 (also .NET Framework 1.1) gibt es die Methode `Path.GetFileName` bereits, aber möglicherweise hast du einen Fehler im Code oder im Import der Namespaces. So funktioniert... [mehr]
Für VB.NET 2003 gibt es keinen offiziellen, fertigen Code für einen komplett selbstgebauten FileDialog, da normalerweise der Standarddialog (`OpenFileDialog`, `SaveFileDialog`) verwendet wir... [mehr]
Ja, es ist möglich, die Dateiansicht (View) eines Datei-Dialogs (z. B. OpenFileDialog oder SaveFileDialog) in einer VB.NET 2003-Anwendung zu ändern – allerdings nur mit Einschränk... [mehr]
Ja, in der IDE von VB.NET (Visual Studio) kannst du den Namen der zu kompilierenden EXE-Datei nachträglich ändern. Das geht folgendermaßen: 1. **Projektmappen-Explorer öffnen:**... [mehr]
Das Problem, dass deine `RichTextBox` in VB.NET 2003 beim Speichern als `type.plaintext` die Zeichen **ä, ö, ü** und **ß** „verschluckt“, liegt sehr wahrscheinlich an... [mehr]
In VB.NET 2003 kann es vorkommen, dass die Methode `SelectAll()` bei TextBox-Steuerelementen nicht wie erwartet funktioniert, insbesondere im Zusammenhang mit bestimmten Ereignissen wieEnter`, `GotFoc... [mehr]