私は PHP で GIF を解凍しようとしてきましたが、LZW 解凍以外はすべてダウンしているようです。表示されている画像を保存しました:
この画像は次のように 3 x 5 です。
Blue Black Black
Black Blue Black
Black Black Black
White White White
White White White
Binary で手動で処理し、このファイルを解析することにしました。手動解析の結果は以下のとおりです。ここでラスターデータをデコードする方法については、まだ行き詰まっています。ラスター データがどのように画像になるかを説明できますか? 1 つの画像を分解できましたが、他には何もありません (この画像ではありません)。これがどのように崩壊するかについての私の理解を投稿しましたが、明らかに間違っています。
01000111 G
01001001 I
01000110 F
00111000 8
00111001 9
01100001 a
Screen Descriptor
WIDTH
00000011 3
00000000
00000101 5
00000000
10010001 GCM (1), CR (001), BPP (001), CD = 2, COLORS = 4
00000000 BGCOLOR Index
00000000 Aspect Ratio
GCM
BLUE
00110101 | 53
00000000 | 0
11000001 | 193
WHITE
11111111 | 255
11111111 | 255
11111111 | 255
BLACK
00000000 | 0
00000000 | 0
00000000 | 0
00000000 | 0
00000000 | 0
00000000 | 0
Extension
00100001 | 21
Function Code
11111001 | F9
Length
00000100 | 4
00000000
00000000
00000000
00000000
Terminator
00000000
Local Descriptor
00101100 Header
XPOS
00000000 | 0
00000000
YPOS
00000000 | 0
00000000
Width
00000011 | 3
00000000
Height
00000101 | 5
00000000
Flags
00000000 (LCM = 0, Interlaced = 0, Sorted = 0, Reserved = 0, Pixel Bits = 0)
RASTER DATA
Initial Code Size
00000010 | 2
Length
00000101 | 5
Data
10000100
01101110
00100111
11000001
01011101
Terminator
00000000
00111011 | ;
00000000
私の試み
10000100
01101110
00100111
11000001
01011101
初期コード サイズ = 3 一度に 2 ビットを読み取る
10
00
Append last bit to first (010)
String becomes 010 or 2. 2 would be color # 3 or BLACK
この時点で、私はすでに間違っています。最初の色は青にする必要があります。
私が使用しているリソース:
http://www.daubnet.com/en/file-format-gif http://en.wikipedia.org/wiki/Graphics_Interchange_Format http://www.w3.org/Graphics/GIF/spec-gif87.txt