2011-09-01 87 views
2

在GIF規格注意到這裏:GIF彩色表式

http://www.w3.org/Graphics/GIF/spec-gif89a.txt

它給用於計算顏色表的大小如下式:

3×2 ^(全局顏色表的大小+ 1)。

鑑於此,他們使用'x'而不是'*',我假設'^'正確嗎?不是是否表示異或?如果是這樣的話,'^'是什麼意思?

謝謝。

+0

您可以從以下鏈接解碼器邏輯和細節 - http://www.tune2wizard.com/gif-decoder/ –

回答

2

^通常用於取冪,2是一個非常普遍的基礎。

Size of Color Table變量被標記爲三位值,並與+1一起表示顏色表在2到256種顏色之間。這確實與GIF格式相符。

(在C語言中,你會寫爲6 << Size_of_global_color_table

+0

非常感謝你! – SSight3

+0

不知道在哪裏問,但MSalters,我不認爲我可以爲任何目的(甚至商業)用C指數代碼的建議?由於我計劃將完成的(GIF閱讀)代碼移交給需要這些權限的開放源代碼庫。 – SSight3

+0

@ SSight3:這是編寫這樣的代碼的規範方法。那裏沒有知識產權;所以沒有必要的權限。 (更復雜的代碼將由CC-SA許可證覆蓋,請參閱SE法律聲明) – MSalters

0

^意味着權力。因此,對全球色表+ 1的大小的力量是2。基本上,作爲基礎2的東西可以通過左移操作容易地供電到一個值。所以,你不需要pow()API。只需執行以下操作。 2 < <(global_colour_table_size)。例如,2^3等於2 < < 2.通常,公式如下,2^n等於2 < <(n-1)。 您可以從以下鏈接解碼器邏輯和細節 - http://www.tune2wizard.com/gif-decoder/