『壹』 PNG、JPEG、BMP等幾種圖片格式詳解(四)—— GIF
以下部分內容來自 網路 ,還會有一部分是自己的見解,我寫這篇文章的目的是既讓大家可以了解網路上已有的知識,但是不用再去找網路,還有就是可以看到我關於這種圖片格式的深層次的了解,看完這篇,包括我在內,會感覺到即使很小很小的一個知識點,深入以後都是非常深的,底層和深層次原理是我的最愛,這也是我寫博客的初衷和目的。
GIF(Graphics Interchange Format) 的原義是「 圖像 互換格式」,是 CompuServe 公司在 1987年開發的 圖像文件格式 。GIF文件的數據,是一種基於 LZW演算法 的連續色調的無損 壓縮格式 。其 壓縮率 一般在 50% 左右,它不屬於任何應用 程序 。GIF格式可以存多幅彩色圖像,如果把存於一個文件中的多幅 圖像數據 逐幅讀出並顯示到屏幕上,就可構成一種最簡單的動畫。
GIF圖象是基於顏色列表的(存儲的數據是該點的顏色對應於顏色列表的索引值),最多隻支持8位(256色)。GIF文件內部分成許多存儲塊,用來存儲多幅圖象或者是決定圖象表現行為的控制塊,用以實現動畫和互動式應用。GIF文件還通過LZW壓縮演算法壓縮圖象數據來減少圖象尺寸。
GIF格式自1987年由 CompuServe 公司引入後,因其體積小、成像相對清晰,特別適合於初期慢速的 互聯網 ,而大受歡迎。
在早期, GIF 所用的LZW壓縮演算法是Compuserv所開發的一種免費演算法。然而令很多軟體開發商感到意外的是,GIF文件所採用的壓縮演算法忽然成了 Unisys 公司的專利。
據Unisys公司稱,他們已注冊了 LZW演算法 中的W部分。如果要開發生成(或顯示)GIF文件的程序,則需向該公司支付版稅。由此,人們開始尋求一種新技術,以減少開發成本。 PNG ( Portable Network Graphics ,便攜網路圖形)標准就在這個背景下應運而生了。它一方面滿足了市場對更少的法規限制的需要,另一方面也帶來了更少的技術上的限制,如顏色的數量等。
在2003年6月20日,LZW演算法在美國的專利權已到期而失效。在歐洲、日本及加拿大的專利權亦已分別在2004年的6月18日、6月20日和7月7日到期失效。盡管如此,PNG文件格式憑著其技術上的優勢,已然躋身於網路上第三廣泛應用格式。與GIF相關的專利於2006年8月11日過期。
長久以來,iOS一直被吐槽不能用GIF。造成這一局面的主要原因是:
GIF分為靜態GIF和動畫GIF兩種,擴展名為.gif,是一種壓縮 點陣圖 格式,支持透明 背景圖像 ,適用於多種操作系統,「體型」很小,網上很多小動畫都是GIF格式。其實GIF是將多幅圖像保存為一個圖像文件,從而形成動畫,最常見的就是通過一幀幀的動畫串聯起來的搞笑gif圖,所以歸根到底GIF仍然是 圖片文件格式 。
但GIF只能顯示256色。和 jpg格式 一樣,這是一種在網路上非常流行的圖形文件格式。
GIF主要分為兩個版本,即 GIF 89a 和 GIF 87a
此給出的語法用來說明形成gif 數據流 的塊序列,用一些規則列表來表達。下面列出用於gif語法的符號定義。
gif語法的符號定義:<GIF 數據流 > ::= 頭部 <;邏輯視屏> <;數據>* 尾記錄
gif 數據流 中的 數據塊 可以分為三組:控制塊、成象塊和特殊用途塊。
色表- gif格式利用色表來顯示基於光柵的圖像。色表分為全局色表和局部色表。全局色表對於那些沒有設置局部色表的圖像起作用。全局色表的作用域是整個 數據流 。局部色表對於緊接在其後的單張圖像起作用。這兩種色表都是可選的。
全局色表這東西是我們感興趣的東西,它有點像png格式定義種的調色板,如果要修改gif圖片的顏色,哈哈,修改這個全局色表就可以,如果有全局色表塊,那麼它一定從gif流的14個位元組開始(頭部6個 + 邏輯視頻描述塊7個)。
以下是各 數據塊 的說明,如果註明為版本89a的話,則說明這個數據塊不會在87a版的協議中出現。
Packed Fields 說明:
GIF文件內部是按塊劃分的,包括 控制塊( Control Block ) 和 數據塊(DataSub-blocks) 兩種。控制塊是控制數據塊行為的,根據不同的控制塊包含一些不同的控制參數;數據塊只包含一些8-bit的字元流,由它前面的控制塊來決定它的功能,每個數據塊大小從0到255個位元組,數據塊的第一個位元組指出這個數據塊大小(位元組數),計算數據塊的大小時不包括這個位元組,所以一個空的數據塊有一個位元組,那就是數據塊的大小0x00。 下表是一個數據塊的結構:
一個GIF文件的結構可分為文件頭(File Header)、GIF數據流(GIF DataStream)和文件終結器(Trailer)三個部分。文件頭包含GIF文件署名(Signature)和版本號(Version);GIF數據流由控制標識符、圖象塊(ImageBlock)和其他的一些擴展塊組成;文件終結器只有一個值為0x3B的字元('';'')表示文件結束。下表顯示了一個GIF文件的組成結構:
是用來標識GIF署名(Signature)和版本號(Version)的。
GIF署名用來確認一個文件是否是GIF格式的文件,這一部分由三個字元組成:"GIF";文件版本號也是由三個位元組組成,可以為"87a"或"89a"。具體如下圖所示。
它包含了很多的部分。
(1) 邏輯屏幕標識符 (Logical Screen Descriptor) :這一部分由7個位元組組成,定義了GIF圖象的大小 (Logical Screen Width &Height) 、顏色深度 (Color Bits) 、背景色 (Blackground ColorIndex) 以及有無全局顏色列表 (Global Color Table) 和顏色列表的索引數 (IndexCount) ,具體描述見下圖。
也可以參考下圖。
(2)全局顏色列表 (Global Color Table) :
全局顏色列表必須緊跟在邏輯屏幕標識符後面,每個顏色列表索引條目由三個位元組組成,按R、G、B的順序排列。
(3)圖象標識符 (Image Descriptor) :一個GIF文件內可以包含多幅圖象,一幅圖象結束之後緊接著下是一幅圖象的標識符,圖象標識符以0x2C('','')字元開始,定義緊接著它的圖象的性質,包括圖象相對於邏輯屏幕邊界的偏移量、圖象大小以及有無局部顏色列表和顏色列表大小,由10個位元組組成,具體如下所示。
也可以參考下圖。
(4)局部顏色列表 (Local Color Table) :如果上面的局部顏色列表標志置位的話,則需要在這里(緊跟在圖象標識符之後)定義一個局部顏色列表以供緊接著它的圖象使用,注意使用前應線保存原來的顏色列表,使用結束之後回復原來保存的全局顏色列表。如果一個GIF文件即沒有提供全局顏色列表,也沒有提供局部顏色列表,可以自己創建一個顏色列表,或使用系統的顏色列表。局部顏色列表的排列方式和全局顏色列表一樣:RGBRGB......
(5) 基於顏色列表的圖象數據 (Table-Based Image Data) :由兩部分組成: LZW 編碼長度 (LZW Minimum Code Size) 和圖象數據 (Image Data) 。
下面給出總體的存儲結構的原理圖。
PC上製作軟體主要為 Adobe ImageReady 和 fireworks 兩個。
WEB上gif在線製作編輯 gif5.net ,支持 圖片 、視頻、FLASH轉GIF。
我一般使用 LICEcap 製作gif圖。
1. 網路
2. GIF圖片的文件儲存結構和動畫原理
3. GIF圖片原理和儲存結構深入解析
『貳』 怎麼樣壓縮GIF圖片的大小
想要壓縮gif圖片的大小體積首先需要一個動圖壓縮工具,SOOGIF動圖壓縮工具就可以壓縮gif圖片。
1、首先點擊【GIF壓縮】工具。
希望我的回答可以幫助到您。
『叄』 如何縮小gif圖片的文件大小
在公眾號後台編輯推文,發現最大隻能上傳10M的圖片。有的gif圖片超出了10M的限制,怎樣才能快速的將圖片縮小到10M以下呢?『肆』 微信發送gif不能超過多大呢
微信對話框發送的gif大小有規定,必須小於1M的要求,所以我們發送gif格式動態圖的時候,經常會提御液示圖片文件過大,不能發送的情況。不如直接把gif動圖壓縮到1M以下更簡單一些。去網上找個在線壓縮圖片網站,直接在線將將gif壓縮到1m以下。
1、網路直接搜在線圖片壓縮工具(廣告的不選擇)
『伍』 如何壓縮gif圖片的大小體積
本人比較喜歡收藏各種搞怪有趣的表情包,現在這些動態表情包可是聊天中的主要交流方式,動態的形式更加直觀地表達內心,再也不用擔心聊天不回信息會尷尬了。
現在的社交軟體都是支持添加gif動圖的,但大小是有限制的,一旦超出了就無法添加,這無疑是一個讓人感到苦惱又無力的事實。遇到這種問題,小編建議,可適當地對gif進行壓縮,這樣就能添加了。至於如何能實現呢,下面的操作教程會教會你,一起來看看吧!
推薦使用:金舟視頻壓縮軟體
操作步驟:
一、雙擊打開視頻壓縮軟體,在這里點擊選擇「GIF壓縮」選項;
『陸』 GIF格式的動態圖片怎麼壓縮小啊
網路搜索並下載gif動態圖片壓縮軟體
1、打開GIF壓縮軟體,很簡單,在主界面上選擇「文件」菜單-「打開圖象...」,瀏覽本地電腦找到需要壓縮的GIF圖片並「打開」。
GIF誕生至今已30多年,其原義是「圖像互換格式「,是CompuServe公司在 1987年開發的圖像文件格式。GIF文件的數據,是一種基於LZW演算法的連續色調的無損壓縮格式。
還可以使用在線網站壓縮GIF圖片,比如soogif.com,提供了微信公眾號、表情包和自定義3種壓縮類型,能將GIF快速壓縮至你需要的大小。還可以進行批量壓縮並打包下載。除了壓縮功能外,還能進行裁剪、合並、加水印、視頻轉GIF等操作。