Frage

Ich möchte die Höhe / Breite eines Bildes auf der Festplatte finden, ohne sie zu öffnen, wenn möglich (aus Leistungsgründen).

Die Scheibe Windows-Eigenschaften für Bilder enthält Informationen wie Breite, Höhe, Farbtiefe usw., die mich führt zu glauben, dass es Metadaten auf die Datei irgendwo speichert. Wie kann ich diese Informationen zugreifen?

War es hilfreich?

Lösung

Es gibt einige Fragen Stackoverflow, wie die EXIF-Informationen aus Bildern zu lesen, wie: Wie die EXIF-Daten aus einer Datei mit C #

bekommen

Andere Tipps

Mit System.Drawing.Image Klasse.

        Image img = Image.FromFile(fileName);
        ImageFormat format = img.RawFormat;
        Console.WriteLine("Image Type : "+format.ToString());
        Console.WriteLine("Image width : "+img.Width);
        Console.WriteLine("Image height : "+img.Height);
        Console.WriteLine("Image resolution : "+(img.VerticalResolution*img.HorizontalResolution));

        Console.WriteLine("Image Pixel depth : "+Image.GetPixelFormatSize(img.PixelFormat));
        Console.WriteLine("Image Creation Date : "+creation.ToString("yyyy-MM-dd"));
        Console.WriteLine("Image Creation Time : "+creation.ToString("hh:mm:ss"));
        Console.WriteLine("Image Modification Date : "+modify.ToString("yyyy-MM-dd"));
        Console.WriteLine("Image Modification Time : "+modify.ToString("hh:mm:ss"));

Der einfachste Weg, dies zu tun ist, wird das Bild unter der Annahme, Quadrat ist die Dateigröße in Bytes zu nehmen und die Quadratwurzel zu nehmen. Dies wird Ihre Breite und Höhe sein.

256 bytes = 16px x 16px

:-)

Alternativ können Sie versuchen, das Image der EXIF-Informationen zu lesen mit dieser codeplex Bibliothek

Fenster nicht speichern (diese) Metadaten in jedem besonderen Platz im Dateisystem; die Eigenschaften-Fenster einfach liest sie aus der Bilddatei selbst.

Ich glaube nicht, .NET bietet alle Funktionen nur die Metadaten von einem Bild zu lesen, ohne das gesamte Bild zu laden. Wenn Sie es zu tun mit nur einer begrenzten Anzahl von verschiedenen Bildformaten (zum Beispiel nur JPEG, PNG und GIF), es sollte nicht allzu schwer sein, die Größe von dem Bild-Header zu lesen, um sich.

Wenn auf der anderen Seite, müssen Sie mit vielen Bildformaten umgehen, vielleicht können Sie einen Blick auf den Quellcode der Unix file Dienstprogramm . Es verwaltet die Größe sehr viele verschiedene Bildformate zu erfassen, und ist unglaublich schnell zu booten.

Um die Breite und Höhe eines Bildes zu erhalten (im Wesentlichen, wie Sie es nennen, die Metadaten) werden Sie wurde zu , um die Datei öffnen, analysieren eine Art von Header-Informationen und erhalten, was Sie will auf diese Weise.

Sie würden nicht alle die Farbe / Bitmap-Informationen zu lesen, nur die Kopfzeile.

Dies ist die gleiche Art und Weise Windows in der Lage ist, Symbole von Anwendungsdateien zu laden, ohne sie tatsächlich auszuführen.

, um die Eigenschaften zu lesen, angezeigt durch Windows Explorer können Sie die Microsoft Shell Bedienelemente verwenden und Automation Komponente. Der Vorteil hierbei ist, dass Sie keine Dritte Bibliothek braucht (das COM-Objekt ist bereits vorhanden) oder zusätzlicher Code zum Parsen der Bildheader und dass sie mit einer Vielzahl von Formaten arbeiten.

Beispielcode kann in einer Antwort auf eine damit verbundene Frage gefunden werden .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top