2013-01-02 61 views
0

我想構建一些代碼,我可以用它來將GIF文件轉換爲另一種文件格式(我已經知道如何創建。[我試圖簡化轉換GIF到GRF - 打印機圖形文件格式。])GIF瞭解圖像解碼 - Lempel-Ziv-Welch

我正在關閉維基百科的信息(http://en.wikipedia.org/wiki/Graphics_Interchange_Format#Image_coding)。

有一節描述了從字節轉換爲9位代碼。他們顯示的例子是:

9-bit binary Bytes 
(hex)   (hex) 

     00000000 00 
100 
     0101000|1 51 
028 
     111111|00 FC 
0FF 
     00011|011 1B 
103 
     0010|1000 28 
102 
     011|10000 70 
103 
     10|100000 A0 
106 
     1|1000001 C1 
107 
     10000011 83 
     00000001 01 
101 
     0000000|1 01 

我能夠生成從文件右側給出的字節。 (我創建了一個完全按照他們在文章中描述的方式創建的文件(3x5,在0,0和1,1 MSPaint中有黑色像素)。

我不理解的是他們如何將這些字節轉換爲9-位十六進制代碼

如何成爲00 100是什麼了吧?(|)在二進制意味着

回答

0

剛剛意識到發生了什麼......

  00000000 00  Add the next digit to the beginning - 100000000 = 100 
100 
     0101000|1 51  Next Digit - 000101000 = 028 
028 
     111111|00 FC  -011111111 = 0FF 
0FF 
     00011|011 1B  -100000011 = 103 
103 
     0010|1000 28  -100000010 = 102 
102 
     011|10000 70  -100000011 = 103 
103 
     10|100000 A0  -100000110 = 106 
106 
     1|1000001 C1  -100000111 = 107 
107 
     10000011 83 
     00000001 01   -100000001 = 101 
101 
     0000000|1 01