若該文爲原創文章,轉載請註明原文出處
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110530966
長期持續帶來更多項目與技術分享,諮詢請加QQ:2149793六、微信:yangsir198808
紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…(點擊傳送門)linux
實現gif圖片的解碼和生成。算法
GIF格式的名稱是Graphics Interchange Format的縮寫,是在1987年由Compu Serve公司爲了填補跨平臺圖像格式的空白而發展起來的。GIF能夠被PC和Mactiontosh等多種平臺上被支持。
GIF是一種位圖。位圖的大體原理是:圖片由許多的像素組成,每個像素都被指定了一種顏色,這些像素綜合起來就構成了圖片。GIF採用的是Lempel-Zev-Welch(LZW)壓縮算法,最高支持256種顏色。因爲這種特性,GIF比較適用於色彩較少的圖片,好比卡通造型、公司標誌等等。若是碰到須要用真彩色的場合,那麼GIF的表現力就有限了。GIF一般會自帶一個調色板,裏面存放須要用到的各類顏色。在Web運用中,圖像的文件量的大小將會明顯地影響到下載的速度,所以咱們能夠根據GIF帶調色板的特性來優化調色板,減小圖像使用的顏色數(有些圖像用不到的顏色能夠捨去),而不影響到圖片的質量。
GIF格式和其餘圖像格式的最大區別在於,它徹底是做爲一種公用標準而設計的,因爲Compu Serve網絡的流行,許多平臺都支持GIF格式。Compu Serve經過免費發行格式說明書推廣GIF,但要求使用GIF文件格式的軟件要包含其版權信息的說明。編程
GIF具備GIF87a和GIF89a兩個版本。微信
其中GIF89a在透明、隔行交錯和動畫GIF方面作出了重大改進。首先是支持透明,GIF89a容許圖片中的某些部分不可見。這項特性很是重要,使得咱們在某些場合可以利用這樣一種特性來使圖像的邊緣再也不呈現出矩形邊框,而變成咱們想要的任意形狀。這些透明區域,能夠很方便地在Photoshop、Fireworks中生成而且導出爲GIF89a格式的GIF圖片來實現。固然,透明並不意味着邊框就再也不存在事實上,它是存在的,只不過不顯示罷了,這樣可使插入的圖片和總體網頁更加協調。網絡
GIF格式的圖像文件具備以下特色:模塊化
圖形交換格式(c)是CompuServe Incorporated的版權全部。GIF(sm)是CompuServe Incorporated的服務標記屬性。
該庫用能夠用於任何須要讀/寫GIF文件格式的應用程序。
CSDN:QQ羣:1047134658(點擊「文件」搜索「giflib」,羣內與博文同步更新)測試
查看項目的目錄結構,實際上是linux的,因此應該是使用linux編譯,先上msys。優化
export PATH=$PATH:/mingw530_32/bin
make出現錯誤
引入CC動畫
export CC=gcc
繼續編譯。spa
原本準備解決,結果一看,已經有libgif.a了,因此其實報錯的編譯多是其測試的其餘demo示例須要依賴(經驗之談)。
gifManager.pri
INCLUDEPATH += $$PWD DEPENDPATH += $$PWD HEADERS += \ $$PWD/GifManager.h SOURCES += \ $$PWD/GifManager.cpp # mingw32 版本 INCLUDEPATH += \ $$PWD/giflib-5.2.1-mingw32/include LIBS += $$PWD/giflib-5.2.1-mingw32/lib/libgif.a
void GifManager::testRunEnv() { qDebug() << __FILE__ << __LINE__ << QString(GifErrorString(D_GIF_SUCCEEDED)); qDebug() << __FILE__ << __LINE__ << QString(GifErrorString(D_GIF_ERR_OPEN_FAILED)); qDebug() << __FILE__ << __LINE__ << QString(GifErrorString(D_GIF_ERR_READ_FAILED)); qDebug() << __FILE__ << __LINE__ << QString(GifErrorString(D_GIF_ERR_NOT_GIF_FILE)); qDebug() << __FILE__ << __LINE__ << QString(GifErrorString(D_GIF_ERR_NO_IMAG_DSCR)); }
對應模板「gifDemo_v1.0.0_基礎模板_測試庫是否加載成功.rar」。
若該文爲原創文章,轉載請註明原文出處
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110530966