Gibt es eine Möglichkeit, herauszufinden, was der ContentType eines Bildes nur von den ursprünglichen Bytes ist?
Im Moment habe ich eine Datenbankspalte, die nur das Byte [] speichert, mit dem ich ein Bild auf einer Webseite anzeigen kann.
%Vor%Ich könnte den ContentType natürlich nur in einer anderen Spalte der Tabelle speichern, aber ich frage mich, ob es einen anderen Weg gibt, z. vielleicht. NET hat eine Möglichkeit, die Daten abzufragen, um den Typ zu erhalten.
Datei / magische Unterschriften war der Weg zu gehen. Unten ist die Arbeitsversion des Codes.
Ref: Stackoverflow - Abrufen von Bilddimensionen, ohne die gesamte Datei zu lesen
%Vor%Und dann die Helferklasse:
%Vor% Das hat für mich funktioniert, ms
ist der Gedächtnisstrom. Der Nachteil ist, dass es das Bild laden muss.
Rewrote die Methode von Nick Clarke ein wenig mit Linq:
%Vor% Ich habe ImagePartType
verwendet, weil ich gerade mit Open XML SDK arbeite, aber ändere einfach den Typ im Wörterbuch:)
Es gibt keine Standardmethode zum Erkennen von Inhaltstyp aus einem in .NET integrierten Stream. Sie könnten Ihren eigenen Algorithmus implementieren, der dies für einige bekannte Bildformate erreichen könnte, indem Sie die ersten paar Bytes lesen und versuchen passen Sie das Format an.
Tags und Links asp.net-mvc c# asp.net