2012-04-03 4 views
1

Wenn wir ein Bild in Binärdaten umwandeln (sagen wir ein .png Bild) gibt es eine Möglichkeit, die Erweiterung zurück zu bekommen, während die Binärdatei in .net wieder in Bild umgewandelt wird?Binäre Image-Erweiterung?

+0

Möchten Sie das Dateiformat überprüfen, dann eine passende Erweiterung angeben, oder möchten Sie die ursprüngliche Erweiterung wiederherstellen? Die erste ist für die meisten Bildformate möglich, da sie mit magischen Bytes beginnen, die das Format angeben. Aber es wird Ihnen nicht sagen, ob eine Datei ursprünglich die Erweiterung ".jpg" oder ".jpeg" hatte oder ob es sich um eine JPEG-Datei mit einer völlig anderen Erweiterung handelte. – CodesInChaos

+0

Ich möchte die ursprüngliche Erweiterung wiederherstellen? – ward87

+0

Was verhindert, dass Sie den Dateinamen neben den Bilddaten speichern? Wo wird die Datei gespeichert? – shambulator

Antwort

1

Kurze Antwort, nein. Du kannst den Namen auch nicht bekommen. Der Dateiname wird normalerweise nicht in Bilddaten gespeichert.

Wenn Sie wissen, wie das Bildformat ist, können Sie entweder eine sinnvolle, allgemein anerkannte Erweiterung oder eine Dateiendung verwenden, die für diesen Dateityp auf Ihrem System registriert ist. Hoffentlich werden sich diese nicht unterscheiden.

Wenn Sie das Format nicht kennen, können Sie es vielleicht vor dem Serialisieren in Binärcode lesen und es der Repräsentation voranstellen.

Für eine weniger allgemeine Antwort erweitern Sie bitte Ihre Frage.

EDIT

Ich denke, man das Bild anzuzeigen, könnte versuchen, eine Reihe von möglichen Formaten, dann beurteilen visuell alle erfolgreich decodiert das richtige Format zu wählen. Irgendwie scheint es einfacher zu sein, die ursprüngliche Erweiterung in die binäre Serialisierung aufzunehmen.