Herausfinden des ContentType eines Bildes aus dem Byte []

8

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.

    
Nick Clarke 07.08.2009, 15:53
quelle

6 Antworten

15

Sehen Sie sich diese Dateisignaturtabelle an.

    
vit 07.08.2009, 15:57
quelle
14

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%     
Nick Clarke 07.08.2009 17:29
quelle
6

Das hat für mich funktioniert, ms ist der Gedächtnisstrom. Der Nachteil ist, dass es das Bild laden muss.

%Vor%     
Joost Aarts 09.01.2012 00:01
quelle
2

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:)

    
Alexander Derck 08.01.2016 12:54
quelle
1

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.

    
Darin Dimitrov 07.08.2009 15:58
quelle
0

Funktioniert die Eigenschaft RawFormat für Sie?

%Vor%     
Jon Skeet 07.08.2009 15:58
quelle

Tags und Links