Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Welche Art von Grafik wurde gespeichert (https://www.delphipraxis.net/206561-welche-art-von-grafik-wurde-gespeichert.html)

himitsu 7. Jan 2021 14:24

AW: Welche Art von Grafik wurde gespeichert
 
TPicture hat seit ein paar wenigen Jahren endlich auch in der LoadFromStream einen Code drin, welcher die Magic-Bytes prüft,
entsprechend dem CanLoadFromStream. (für alle TGraphic-Typen, welche registriert sind, also wo die Units eingebunden sind)

Früher ging LoadFromStream immer nur beim "richtigen" Graphic-Typen
und nur im LoadFormFile war eine Prüfung der Dateiendung drin.


Leider war mal wieder einer der Entwickler dermaßen asozial und hat alles in der Implementation versteckt
und bietet keinen direkten Zugriff auf FileFormats, bzw.
Delphi-Quellcode:
TheGraphicsClass := FileFormats.FindFormat(YourStrem); {if Assigned(TheGraphicsClass) then} YourFileExtension := GraphicExtension(TheGraphicsClass);


PS: Delphi-Referenz durchsuchenGraphicExtension, was auch auf der "geheimen" Liste "FileFormats" basiert, über welche TImage/TPicture und die TGraphic's sich intern verwalten.

TiGü 7. Jan 2021 14:42

AW: Welche Art von Grafik wurde gespeichert
 
Tatsächlich werden die CanLoadFromStream class functions der registrierten TGraphic-Abkömmlinge aufgerufen, wenn man TPicture.LoadFromStream verwendet.

Jumpy 7. Jan 2021 17:01

AW: Welche Art von Grafik wurde gespeichert
 
Hätte man den nicht einfach den bisherigen Dateinamen samt Endung in der Tabelle mit wegspeichern können, dann hätte man das Problem doch gar nicht, oder denk ich da zu einfach?

TiGü 7. Jan 2021 17:17

AW: Welche Art von Grafik wurde gespeichert
 
Jo, hätte ich auch so gemacht.

himitsu 7. Jan 2021 21:18

AW: Welche Art von Grafik wurde gespeichert
 
Kann man machen, vorallem praktisch, wenn man die Bilder irgendwann mal wieder exportieren möchte.

Aber den Typ aus dem Dateninhalt zu bekommen hat noch einen anderen Vorteil.
-> falsche Dateiendung



Auch das TDBImage kann nun mit anderen Formaten gefüttert werden, anstatt wie früher nur Bitmap. (weil ja LoadFromStream aus'm Blob)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz