成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android圖片資源瘦身的方法是什么

這篇文章主要介紹“Android圖片資源瘦身的方法是什么”,在日常操作中,相信很多人在Android圖片資源瘦身的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android圖片資源瘦身的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)于2013年成立,先為宜賓等服務(wù)建站,宜賓等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為宜賓企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一.選擇壓縮工具

首先是選擇壓縮工具的問題,在這之前先看下系統(tǒng)是如何做的。android的aapt在編譯階段其實是會對png圖片進(jìn)行壓縮的,用的則是libpng和zlib,這個可以用aapt的源碼佐證:

  • 用libpng對圖片進(jìn)行預(yù)處理

  • 用zlib對預(yù)處理后的圖片進(jìn)行壓縮生成新圖片

可以看到aapt對圖片的壓縮等級使用了最高等級9,期間系統(tǒng)也會做顏色表轉(zhuǎn)換,這樣可以減少很大一部分圖片的體積,但系統(tǒng)的壓縮方案是不是完美無缺呢?目前常用的無損壓縮大概有Pngrewrite、pngcrush、optipng、advancecom、pngout,參考了很多文章,得出的結(jié)果是pngout仍然是王者,畢竟是Ken神童(據(jù)說Doom and Quake的作者John都尊敬他,做游戲的肯定都知道John )寫的。另外由于pngout可以很好的支持命令行,方便放到編譯腳本中自動化,所以暫時選它好了。

二.實踐案例

壓縮工具選好了,第二步便是實驗了。拿手Q為例,直接對手Q中的所有png壓一遍,Pngout的速度確實一般,對4千張圖片全部處理一遍大概需要13分鐘,不過這個過程只需要在本地做一遍,所以可以忍受,但處理完的結(jié)果不理想,因為沒什么效果,減小量為十幾KB~~ 仔細(xì)分析得知這里面犯渾作怪的竟然是aapt,由于先調(diào)pngout再調(diào)aapt會導(dǎo)致壓縮效果覆蓋。那么可不可以關(guān)閉aapt呢? 查看aapt的參數(shù),關(guān)于壓縮相關(guān)的只有下面這兩個參數(shù):

其中crunch便是預(yù)處理資源了,但是沒有關(guān)閉crunch的參數(shù)。。。。有點技窮了對不對。只能去源碼中找靈感了,看aapt的源碼:

google把它隱藏了,沒有打印出來給用戶~打開這個參數(shù),在手Q中資源打包腳本處分別加入--no-crunch參數(shù),便可以把系統(tǒng)壓縮給屏蔽掉了,樣式如下:

至于為什么設(shè)置了這個參數(shù)就可以屏蔽呢,其實源碼調(diào)用過程如下:

第1步 (Main.cpp)

第2步 (Command.cpp)

第3步 (Resource.cpp)

終結(jié): (Resource.cpp)

可是實驗還沒有結(jié)束,因為這樣屏蔽掉會出現(xiàn)奇葩的景象,得到的手Q畫面效果如下:

為什么呢?仔細(xì)分析發(fā)現(xiàn)九宮格圖片被壓出問題了,aapt在處理png圖片時會判斷是不是九宮格圖片,如果是則做特殊預(yù)處理:

do_9patch其實主要的是九宮格信息弄出來,寫入到info9Patch字段,并最終寫入nptc的chunk中:

到這里又回到第一步為什么我說Ken是神童了,因為Pngout可以選擇chunk進(jìn)行壓縮,所以解決方案便是:對于九宮格圖片,我們單獨拎出來,先用aapt的aapt crunch進(jìn)行預(yù)處理得到npTc字段,再用pngout在壓縮時調(diào)用"knptc"參數(shù)保護一下npTc塊,這樣便得到了正確的九宮格圖片,安裝包的效果圖也就正常了。

到此,關(guān)于“Android圖片資源瘦身的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)站名稱:Android圖片資源瘦身的方法是什么
轉(zhuǎn)載注明:http://jinyejixie.com/article4/pggsoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站設(shè)計、做網(wǎng)站、域名注冊、網(wǎng)站改版網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)
永年县| 哈尔滨市| 大埔县| 蚌埠市| 周口市| 桃源县| 大姚县| 喀喇| 利辛县| 濮阳市| 开鲁县| 乌鲁木齐市| 深水埗区| 五台县| 永昌县| 永安市| 军事| 团风县| 长子县| 望城县| 阿合奇县| 武隆县| 二连浩特市| 怀仁县| 宁波市| 同心县| 西丰县| 胶州市| 孟连| 乌兰县| 镶黄旗| 鄄城县| 吉水县| 绵阳市| 易门县| 平远县| 利川市| 微山县| 辉南县| 本溪| 湛江市|