Mobile

C# Wie finde ich heraus ob ein GIF "Interlacing" verwedet? Nur durch Bytes auslesen

pinguSTAR

Ensign
Registriert
Juni 2010
Beiträge
171
Hallo,

ich programmiere in C# gerade ein Programm welches mir verschieden Informationen über eine GIF-Datei liefert.

Größe, Anzahl der Farben etc habe ich bereits, doch nun verzweifle ich gerade daran zu bestimmen ob die GIF-Datei das Zeilensprungverfahren (Interlacing) nutzt oder nicht.

Diese Information sollte in irgendeinem Byte der Datei verankert sein. Nur da die Anzahl der Bytes variiert kann ich ja nicht sagen bei jeder Datei das x-te Byte gibt mir diese Information.

Ich danke schonmal recht herzlich für jeden Tip!

Grüße
pingu
 
Mehr als Folgendes habe ich leider auch nicht notiert:
GIF's approach has four passes and is based on complete rows of the image, making it a one-dimensional method. First every eighth row is displayed; then every eighth row is displayed again, only this time offset by four rows from the initial pass. The third pass consists of every fourth row, and the final pass includes every other row (half of the image).

mfg


//Anhang:
http://www.w3.org/Graphics/GIF/spec-gif89a.txt
 
Zuletzt bearbeitet: (w3 spezifikationen)
Zuletzt bearbeitet:
Byte 10 ist Teil der "Canvas Height" - zumindest bei GIF89a.

GIF87 ist sogut wie ausgestorben und wird in meinem Fall nicht berücksichtigt :-/

Im "Image Descriptor" das 10 Byte und 2 Bit ist "Interlace Flag" das könnte das richtige sein.

Jedoch ist der Teil "Image Descriptor" bei jedem Gif an einer andere Stelle das die Teile davor unteschiedlich lang sein können.
 
vielen dank - das sieht vielversprechend aus :)

gleich mal schauen ob ich das in mein code integrieren kann.
 
Zurück
Oben