2011-01-08 13 views

Antwort

1

Nein. Sie können die Dateigröße mit dem Header Content-Length erhalten, aber Sie müssten zumindest das Bild herunterladen, um die Breite/Höhe zu erhalten.

Sobald das Bild heruntergeladen wird, können Sie den Stream analysieren und wie @BrokenGlass und @Ed Swangren versuchen, die Bildbreite/-höhe auf diese Weise zu finden.

Trotzdem klingt es wie eine Menge Arbeit, da Sie die Bildbreite/-höhe schnell mit verfügbaren Bibliotheken finden können, wenn Sie das gesamte Bild herunterladen. Wenn Sie nicht mit massiven Bildern oder einer großen Anzahl von Bildern zu tun haben, ist es vielleicht einfacher, die Dateien herunterzuladen und deren Größe zu überprüfen.

+0

Ich stimme zu, dass das OP möglicherweise nicht wirklich den Header analysieren muss, aber ich denke, dass diese Frage anderen dienen wird, die diese spezifische Leistungseinschränkung tatsächlich haben. Was das OP betrifft, so haben wir keine Möglichkeit es zu wissen. –

+0

Sehr wahr, aber ich möchte nur einen Warnmarker auf ihrem Pfad platzieren, um sie wissen zu lassen, dass das Lesen der Header aus Streaming-Bildern eine enorme Anstrengung für eine (wahrscheinlich) sehr kleine Belohnung darstellt. –

+0

Danke. Ich weiß nicht, ob das Bild groß oder klein sein wird. In manchen Fällen kann es daher zu einem Leistungsproblem kommen, wenn das Bild groß ist. Ich werde in Bildformatspezifikationen schauen, um zu sehen, ob ich es mildern kann. Vielen Dank. – Jeremy

3

Einige Bildformate enthalten Größeninformationen in der Kopfzeile. Sie könnten den Header analysieren, um die Größe herauszufinden, aber natürlich wird die Implementierung je nach Bildformat variieren.

+0

Da die ursprüngliche Frage mit dem Tag "http-headers" markiert ist, glaube ich, dass Sie eher den Header des Bildes meinen, also die ersten Bytes der Binärdarstellung des Bildes. Recht? –

+0

Ja, ich meine den Bildkopf. –

1

Die Dateigröße des Bildes, das Sie mit einer HTTP HEAD-Anfrage ermitteln können, die Antwort enthält die Inhaltslänge, im Fall von .NET HttpResponse.ContentLength.

Für die Bestimmung der Breite/Höhe vieler Bildformate benötigen Sie nur einige Bytes am Anfang der Datei, damit Sie damit beginnen können - wie erwähnt, hängt es jedoch vom tatsächlichen Bildformat ab.

+0

Gute Antwort, obwohl es keine Garantie gibt, dass HEAD tatsächlich unterstützt wird. – EricLaw

Verwandte Themen