![]() |
TJPegImage durch TWICImage ersetzen
Hallo!
In einer unserer Anwendungen werden Bilder aus einer Datenbank gelesen und in der Anwendung angezeigt. Bildformat: JPeg. Das klappt auch soweit ganz gut mit einer "TJPegImage" - Komponente. Jetzt meldete ein Kunde, dass beim Anzeigen der Bilder ein "JPeg error #53" - Fehler angezeigt wird. Eine Prüfung ergab, dass der Kunde die Bilder im PNG-Format in der Datenbank gespeichert hatte. Auf der Suche nach einer Lösung fiel mir die Komponente "TWICImage" auf, die mit verschiedenen Bildformaten umgehen kann. Nachdem ich die Komponente "TJpegImage" durch "TWICKomponente" ausgewechselt hatte, gab es keinen #53-Fehler mehr und die Bilder wurden richtig angezeigt. Ist das wirklich so einfach oder wurde von uns etwas übersehen? TWICImage benötigt DirectX von Microsoft. So wie ich das sehe, ist DirectX aber auf allen Windows-PCs vorinstalliert?! Gruß Ulrich |
AW: TJPegImage durch TWICImage ersetzen
Zitat:
Alternativ ginge vielleicht auch TPicture, dann gibt es auch keine Abhängigkeit von GDI+. |
AW: TJPegImage durch TWICImage ersetzen
Ja, TWICImage unterscheidet intern und kommt mit mehreren Grafikformaten zurecht.
Ich wüsste nicht warum dass es DirectX benötigt, aber wenn in einem Thread oder Consolen-Anwendung, da darf man das CoInitialize nicht vergessen, weil das ist nötig. TImage/TPicture-LoadFromStream nutzt jetzt den Dateiheader (MagicBytes) für die Unterscheidung (seit Kurzem). Früher wurde nur über die Dateiendung der Typ erkannt, weswegen man unterschiedliche Bilder nur mit LoadFromFile in TImage/TPicture laden konnte (oder vorher manuell unterscheiden mußte welches TGrafic man verwenden muß).
Delphi-Quellcode:
sollte im 10.3 nun egal sein was für eine Datei im Stream/Blob liegt und es schnappt sich dann die passende TGrafic-Klasse, unter anderem auch das TWICImage.
Image.Picture.LoadFromStream
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz