Hi@all
Das .NET-Framework selber verwendet ja GDI+ zum laden von Bildern. GDI+ bietet aber nur eine begrenzte Anzahl von Codecs an, mit denen Bilder geladen und auch gespeichert werden können. Für Bildformate, die GDI+ nicht laden kann, gibt es diverse Möglichkeiten. Windows selber bietet ebenfalls mehrere Möglichkeiten an, diverse Bildformate zu laden. Dieses Beispiel zeigt wie man Bilder per Interface ITranscodeImage laden kann. Es können damit alle von Windows unterstützte Bildformate geladen werden. Letzteres ist abhängig davon, welche Bild-Codecs im System vorhanden sind. Eigentlich ist das Interface ITranscodeImage zum transcodieren und proportional skalieren, also laden und speichern, von unterstützten Bildformaten zu BMP und JPG gedacht. Man kann aber auch den IStream abgreifen und daraus ein .NET-Bitmap erstellen.
Leider hat das Interface ITranscodeImage einen kleinen Nachteil. Bilder im (P)ARGB-Format (wie ICO, PNG), die Teil oder Komplett transparente Bereiche enthalten, werden nicht korrekt bzw. diese Flächen werden schwarz dargestellt. Das liegt daran das das Bild in ein BMP (oder JPG) mit 24bppRGB transcodiert wird und dadurch transparente Bereiche verloren gehen. Windows selber hat noch ein anderes Interface mit dem man vom System unterstützte Bilder laden kann. Da tritt das Problem mit den transparenten Bereichen nicht auf. Aber da mach ich später mal ein Beispiel zu. Ein Beispiel wie man Bilder per Windows Imaging Component (WIC) laden und speichern kann, mach ich auch noch bei Gelegenheit.
Ansonsten: Wie immer keine extra Verweise und so weiter. Pfad zu einem Bild müsst Ihr entsprechend anpassen. Beim speichern wird das neue Bild mit anderen Namen in den gleichen Ordner gespeichert, wo auch das Original liegt. Vorhandene Dateien werden einfach ohne Nachfrage überschrieben.
Das .NET-Framework selber verwendet ja GDI+ zum laden von Bildern. GDI+ bietet aber nur eine begrenzte Anzahl von Codecs an, mit denen Bilder geladen und auch gespeichert werden können. Für Bildformate, die GDI+ nicht laden kann, gibt es diverse Möglichkeiten. Windows selber bietet ebenfalls mehrere Möglichkeiten an, diverse Bildformate zu laden. Dieses Beispiel zeigt wie man Bilder per Interface ITranscodeImage laden kann. Es können damit alle von Windows unterstützte Bildformate geladen werden. Letzteres ist abhängig davon, welche Bild-Codecs im System vorhanden sind. Eigentlich ist das Interface ITranscodeImage zum transcodieren und proportional skalieren, also laden und speichern, von unterstützten Bildformaten zu BMP und JPG gedacht. Man kann aber auch den IStream abgreifen und daraus ein .NET-Bitmap erstellen.
Leider hat das Interface ITranscodeImage einen kleinen Nachteil. Bilder im (P)ARGB-Format (wie ICO, PNG), die Teil oder Komplett transparente Bereiche enthalten, werden nicht korrekt bzw. diese Flächen werden schwarz dargestellt. Das liegt daran das das Bild in ein BMP (oder JPG) mit 24bppRGB transcodiert wird und dadurch transparente Bereiche verloren gehen. Windows selber hat noch ein anderes Interface mit dem man vom System unterstützte Bilder laden kann. Da tritt das Problem mit den transparenten Bereichen nicht auf. Aber da mach ich später mal ein Beispiel zu. Ein Beispiel wie man Bilder per Windows Imaging Component (WIC) laden und speichern kann, mach ich auch noch bei Gelegenheit.
Ansonsten: Wie immer keine extra Verweise und so weiter. Pfad zu einem Bild müsst Ihr entsprechend anpassen. Beim speichern wird das neue Bild mit anderen Namen in den gleichen Ordner gespeichert, wo auch das Original liegt. Vorhandene Dateien werden einfach ohne Nachfrage überschrieben.
Mfg -Franky-
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „-Franky-“ ()