免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
PngMate使用教程
PngMate是一個非常實用的命令行圖像轉(zhuǎn)換工具,它提供的大部分功能幾乎就是為了開發(fā)手機(jī)游戲而量身定制的。

下載PngMate

PngMate有以下一些功能特點:
1 去掉PNG中的一切冗余數(shù)據(jù),在不影響圖像質(zhì)量的前提下極限壓縮PNG圖片,經(jīng)驗證生成的PNG比使用ImageOptimizer等優(yōu)化工具優(yōu)化過的PNG圖片還要小
2 可以任意指定輸出PNG圖片的顏色數(shù),以犧牲圖像質(zhì)量為代價進(jìn)一步縮小PNG圖片
3 可把動畫GIF的多幀自動提取出來生成平鋪的單張PNG
4 也可以切分輸入的單幀圖片成為多幀
5 可以對幀序列進(jìn)行復(fù)雜的操作
6 可以把切分圖片后的生成的幀序列重新生成動畫GIF
7 可以針對每幀進(jìn)行放縮、切割等操作,且可以自動運(yùn)算以進(jìn)行最大限度的切割
8 PngMate是命令行工具,可以輕易實現(xiàn)批處理或整合到工程創(chuàng)建腳本中
9 其它小的特色,如改變透明背景色,在幀上加注編號等

PngMate是命令行工具,和大部分人習(xí)慣使用的有界面的的軟件有所不同,下面向大家介紹一下PngMate的典型使用方法。

為了在任何一個目錄下面都能執(zhí)行PngMate,我建議大家把PngMate.exe放在C:\Windows(如果是Win2K則是C:\WinNT)這個目錄下面,這樣最簡單,什么也不用設(shè)置。當(dāng)然也可以在"控制面板->系統(tǒng)->高級"里面把PngMate.exe所在的目錄加入到環(huán)境變量PATH里面去,這樣效果是一樣的。

弄好以后,就可以使用"開始->程序->附件->命令提示符"或者"開始->運(yùn)行->輸入cmd"打開一個命令行窗口來使用PngMate了,在命令行窗口的命令提示符后輸入pngmate,然后回車,看看是不是有中文幫助出來,如果沒有,可能是你的機(jī)器沒有安裝JRE(Java運(yùn)行環(huán)境),因為PngMate是用Java開發(fā)的。那么去下載一個JRE(要1.4或更高版本才行)安裝上就應(yīng)該可以了。JRE可以在這里下載。


JAVA手機(jī)網(wǎng)[www.cnjm.net]
通常我們制作手機(jī)游戲中的動畫時,都是用ImageReady等工具先做成動畫gif,因為這樣可以看到動起來的效果。可是J2ME并不支持動畫gif,所以只好在做完以后把gif的每一幀排列到一張大的png圖片上,然后在程序里面再切割png來顯示成一幀一幀的效果。這個把gif轉(zhuǎn)成png的過程雖然沒啥難度,不過每次每次的重復(fù)弄,還是挺麻煩的。用PngMate就簡單了,比如下面的例子:

pngmate boy.gif boy.png

boy.gif
   

boy.png
   

ACDSee中看到的boy.png
   



JAVA手機(jī)網(wǎng)[www.cnjm.net]

JAVA手機(jī)網(wǎng)[www.cnjm.net]
生成的圖片默認(rèn)都是有透明色的,如果你用ACDSee等軟件打開PngMate生成的圖片,會發(fā)現(xiàn)透明的部分顯示的是綠色,不要擔(dān)心,實際在J2ME里繪制圖片的時候,綠色的背景是不會出現(xiàn)的。在大多數(shù)情況下,綠色背景能很好的和畫面中的有效部分區(qū)分開,哪里透明哪里不透明讓你一目了然,不過有些圖片—比如樹木—里面本身有不少綠色的部分,這個時候用ACDSee看上去可能就和綠色的背景融為一體了,那么我們可以用-trans <RRGGBB>來改變透明色的背景,比如使用洋紅色FF00FF:

pngmate boy.gif boy1.png -trans FF00FF

boy1.png
   

ACDSee中看到的boy1.png
   



boy.gif里面第三幀實際上和第一幀是一樣的,在內(nèi)存寸土寸金的J2ME程序中,我們怎么能容忍這樣的浪費(fèi)?好,我們用幀序列處理命令delete命令來把多余的幀刪掉,不過要記住在PngMate中,幀是從0開始編號的,也就是說第三幀的編號是2,因此:

pngmate boy.gif boy2.png -delete 2

boy2.png
   



boy.gif是64x64的圖片,可是里面的小男孩實際上的大小卻沒有那么大,png文件是壓縮過的,所以透明的空白部分在png文件中增加不了幾個字節(jié),但是可以想見,在游戲的運(yùn)行時刻,內(nèi)存中保存的肯定是未壓縮的像素數(shù)組,那么這些空白部分就要消耗實實在在的內(nèi)存!因此把這些空白邊界切掉絕對是有實際意義的,那么我們就用PngMate的crop功能來把輸入圖片的有效部分切出來:

pngmate boy.gif boy3.png -delete 2 -crop 48x52+8+10

boy3.png
   


JAVA手機(jī)網(wǎng)[www.cnjm.net]

不過這樣好像還是有一些空白可以切掉,但是用目測的方式一個像素一個像素的調(diào)整確實太費(fèi)勁了,如果能自動運(yùn)算找出包含所有有效像素的最小矩形那是最好不過的,pngmate非常體貼的也幫你想到了這點哦!只要采用貪婪切割策略就可以了:

pngmate boy.gif boy4.png -delete 2 -crop greedy

boy4.png
   



下面我們來換一張圖片,街頭霸王Ken,這張gif的幀數(shù)比較多,默認(rèn)輸出排成一行看著費(fèi)勁,那么可以用align命令來指定一行的幀數(shù),指示PngMate輸出成多行:

pngmate ken.gif ken.png -align 6

ken.gif
   

ken.png
   


JAVA手機(jī)網(wǎng)[www.cnjm.net]

ken.gif直接轉(zhuǎn)成的ken.png體積比較大,而且我們實際做游戲根本用不到這么大的角色,那么可以用resize來改變幀的大小,我們在下面的例子里高度指定為0,意思是根據(jù)給定的寬和原圖的比例自動運(yùn)算出新圖片的高:
JAVA手機(jī)網(wǎng)[www.cnjm.net]

pngmate ken.gif ken1.png -resize 64x0 -align 6

ken1.png
   



可是這樣生成的png還是有點大,我們可以用frameskip來跳過一部分幀,這樣動作雖然不如原來流暢,但是圖片體積也相應(yīng)大大減小了:

pngmate ken.gif ken2.png -resize 64x0 -frameskip 1

ken2.png
   



好,小了將近一半了,再想縮小圖片,可以采用減少圖片使用的顏色數(shù)的辦法,一般來說,使用的顏色越少,圖片體積越小,當(dāng)然相應(yīng)的圖像質(zhì)量也會下降,不過我們完全可以多試幾次,在圖片體積和圖像質(zhì)量中達(dá)到一個最佳平衡點:

pngmate ken.gif ken3.png -resize 64x0 -frameskip 1 -colors 40

ken3.png
JAVA手機(jī)網(wǎng)[www.cnjm.net]
   



怎么樣,雖說圖像質(zhì)量稍有下降,但看上去并沒有比ken2.png差太多,不過體積可又減小了將近一半!

做完了這些工作,是不是很想看看現(xiàn)在的縮小版Ken動畫的實際效果?再轉(zhuǎn)回動畫gif當(dāng)然是最直接的辦法,不用求助美工,pngmate一樣幫你搞定!采用split命令可以把輸入的圖片切分成多幀,而我們的ken3.png只有一行,這一行上水平排列了6幀,所以應(yīng)該切分成6列 x 1行,因此用下面的命令行:

pngmate ken3.png ken1.gif -split 6x1

ken1.gif
   



還不錯吧?不過看上去比原來的動作慢了一點,這是因為沒有指定gif的幀間延遲,所以PngMate采用了默認(rèn)值200毫秒(每秒5幀),對我們的動畫來說確實慢了一些,沒關(guān)系,可以用delay命令來指定輸出gif的幀間延遲:
JAVA手機(jī)網(wǎng)[www.cnjm.net]

pngmate ken3.png ken2.gif -split 6x1 -delay 150

ken2.gif
   



怎么樣,是不是感覺好多了?

我們剛才處理的小男孩圖片現(xiàn)在也來看看動態(tài)效果,但是想起來沒有,我們剛才刪除了其中一個重復(fù)幀,這樣如果直接生成gif的話,動作就不連貫了,怎么辦呢?別急,pngmate還提供了幀序列處理命令select,可以用它來選擇部分幀,而且?guī)蛱柨梢灾貜?fù)喲,所以只要用下面的命令就可以做到:

pngmate boy4.png -split 3x1 boy1.gif -delay 150 -select 0,1,0,2

boy1.gif
   

JAVA手機(jī)網(wǎng)[www.cnjm.net]

JAVA手機(jī)網(wǎng)[www.cnjm.net]

大家可以從上面的例子里看到,pngmate對參數(shù)的順序要求是很寬松的,可以像前面的例子一樣,把命令可以寫在輸入、輸出文件的后面,也可以寫在它們的前面甚至中間。但是crop和resize命令如果組合使用,那么處理的順序就是命令行中它們出現(xiàn)的的先后順序。同樣,對于frameskip, select, delete這三個幀序列處理命令,它們?nèi)绻瑫r出現(xiàn),那么也是按照在命令行中出現(xiàn)的先后順序來依次執(zhí)行。好像有點復(fù)雜,不過話說回來,在絕大多數(shù)場合下,沒有必要組合使用這些命令。
JAVA手機(jī)網(wǎng)[www.cnjm.net]

JAVA手機(jī)網(wǎng)[www.cnjm.net]
當(dāng)我們要使用select命令或者delete命令來操作幀序列的時候,遇到幀比較多的情況,挨個數(shù)幀編號也是挺麻煩的一件事情,因此pngmate特別提供了在圖片上加注數(shù)字編號的功能,你可以用這個功能生成一張參考圖片來方便工作:

JAVA手機(jī)網(wǎng)[www.cnjm.net]
pngmate ken.gif ken4.png -numbered -align 6

ken4.png
   



PngMate的命令差不多都給大家介紹完了,下面我們來實戰(zhàn)一個稍微復(fù)雜點的例子,從一張包含了所有幀的png圖片生成小男孩向各個方向走的連續(xù)動畫:

pngmate boyall.png -split 3x4 -select 0,1,0,2,0,1,0,2,6,7,6,8,6,7,6,8,3,4,3,5,3,4,3,5,9,10,9,11,9,10,9,11 boyall.gif -delay 150 -crop greedy

boyall.png
JAVA手機(jī)網(wǎng)[www.cnjm.net]
   

boyall.gif
   



這命令行看上去有些復(fù)雜,不過其實就是那個select命令稍微長了一點,它依次指定了所有動畫幀,其它的命令都是老朋友了,只不過這次組合起來一起用而已。

如果我有大量的圖像文件想使用PngMate批量處理怎么辦呢?雖然PngMate本身不支持批量處理文件,但你可以使用批處理文件(.bat文件)或者dos命令"for"來輕松的實現(xiàn)批處理功能。對于很多簡單的處理,for命令就能搞定。嚴(yán)格說來,這已經(jīng)不是本教程討論的范疇,不過大家可能對for命令不太熟悉,我可以拋磚引玉介紹一二。

for命令的基本格式是for %變量 in (范圍) do ...
do后面可以使用任何命令行命令,且中間可以使用前面的變量,比如在下面的例子中,我們將為當(dāng)前目錄下每張jpg圖片生成一張64x64,60色的png預(yù)覽圖,文件名為原來的文件名去掉.jpg擴(kuò)展名后再加上.png擴(kuò)展名,那么:

for %I in (*.jpg) do @pngmate %I %~nI.png -resize 64x64 -colors 60


假設(shè)我有個S60的游戲,想往S40平臺移植,要把所有圖片整體按比例縮小到原來的72.7%(128/176),那么用for命令可以這么做:

md s40
for %I in (*.png) do @pngmate %I s40\%I -resize 72.7% -colors 16


當(dāng)然這只是舉個例子,如果你也這么干的話,你的游戲的S40版本估計十有八九是個垃圾了,因為pngmate縮小后的圖片比起專門繪制的像素圖,那質(zhì)量當(dāng)然是差遠(yuǎn)了。真正負(fù)責(zé)任的開發(fā)者還是應(yīng)該專門為40版本繪制相應(yīng)大小的像素圖,千萬不要跟筆者一樣偷懶哦!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
再教你一個裝逼神器——蛋白質(zhì)三維結(jié)構(gòu)查看軟件pymol
PNG轉(zhuǎn)GIF有什么方法?方法有很多
Linux有問必答
ImageMagick簡介、GraphicsMagick、命令行使用示例
使用Python生成藝術(shù)二維碼,如何使你的二維碼獨一無二呢?
PHP:ImageMagick完美代替GB類庫處理圖像
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服