2017-10-19 6 views
0

Nun, hier ist die Sache, ich benutze das Terminal, um dies zu tun. Mit einem Texteditor wie nano erstelle ich eine einfache Textdatei mit dem Inhalt: „GIF89a2017“ und ich spare es als rare.gifKlartext mit .gif-Erweiterung in Ubuntu

Heres das Ding, wenn ich Datei rare.gif es gibt mir diese Ausgabe: rare.gif: GIF-Bilddaten, Version 89a, 12338 x 14129 und zeigt an, dass es sich um ein GIF-Bild mit einer Auflösung von 12338 x 14129 ist und das ist was ich nicht verstehe. Woher kommt diese Lösung?

Eine andere Sache ist, ich dachte Erweiterung nicht wirklich entscheiden, welche Art von Datei ist es, zum Beispiel, wenn ich nehme eine .gif und wandeln es in und .exe es erkennt es immer noch als ein GIF-Bild mit der Datei Befehl. Ich vermute, dass das Problem, das ich habe, als GIF-Bild erkannt wird, weil es mit der GIF-Erweiterung erstellt wurde, aber ich würde gerne wissen, warum.

Danke an alle!

Antwort

1

Woher kommt diese Auflösung?

Es stammt aus dem (falschen) GIF89-Header, den Sie in die Datei einfügen. Die vier Bytes nach "GIF89a" definieren die Breite und Höhe. Jede davon wird als 16-Bit-Ganzzahl ohne Vorzeichen gespeichert. Die Zeichen, die Sie dort setzen - 2017 - interpretiert als:

32 30 ("20") -- 0x3032 = 12338 
31 37 ("17") -- 0x3731 = 14129 

Ich werde Vermutung bin, dass das Problem, dass ich es als ein GIF-Bild erkannt wird, weil sie mit dem GIF-Erweiterung erstellt wurde aber ich würde gerne wissen warum.

Nein, file schaut nicht auf Erweiterungen. Das liegt daran, dass die Datei einen halbgültigen GIF-Header hatte. Wenn Sie den Header in etwas geändert haben, das nicht mit "GIF89a" begonnen hat, wird es nicht länger als GIF erkannt.

+0

Okay, das klingt gut, aber tut mir leid, ich fange gerade an und ich habe nicht wirklich verstanden, wie Sie diese Umwandlung von 20 zu 32 30 und von 17 zu 31 37 gemacht haben. Für mich scheint es nur eine 3 vor aber ich bin mir sicher, dass es nicht so ist. Ich werde dich nicht bitten, mir alles zu erklären, wenn du nicht willst, aber vielleicht kannst du mich irgendwohin umleiten, von wo ich es lernen kann. Danke trotzdem! –