- 浏览: 626021 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (448)
- 字符串相关 (16)
- Struts2页面显示 (15)
- Hibernate错误记录 (6)
- linux命令 (2)
- java项目测试 (5)
- 个人作品 (10)
- hibernate应用 (15)
- struts1 (7)
- 数据库(除了hibernate) (42)
- J2ME/WAP (37)
- servlet/jsp (49)
- java桌面应用+java综合 (14)
- 服务器配置,报错解决 (24)
- Myeclipse配置,抛错解决 (8)
- linux (18)
- JavaScript+jquery+ajax (45)
- div css 页面设计 (16)
- 互联网综合运营 (14)
- 编程工具类 (3)
- 论文 报告 文献 (14)
- PHP (26)
- struts2 (9)
- spring (1)
- 我的IT生活 (14)
- Resin (6)
- java项目记录 (14)
- https安全 (11)
- 支付技术 (3)
最新评论
-
yihaijunyxr:
很好呀,我好久没用iteye了,今天找出两个帐号(yihaij ...
c/c++的监听tmlisten启动缓慢解决 -
yihaijun:
好像这不算是技术博客,是工作博客
c/c++的监听tmlisten启动缓慢解决 -
ml365:
后来还优化了webservice的前置框架,不用cxf,用了另 ...
c/c++的监听tmlisten启动缓慢解决 -
Jayliuying:
有点晚哈 但是也支持一下 楼主
java相关论文的参考文献【转】 -
gqsunrise:
...
我是项目经理,我的项目管理日记【20120229】
下面我们来换一张图片,街头霸王Ken,这张gif的帧数比较多,默认输出排成一行看着费劲,那么可以用align命令来指定一行的帧数,指示PngMate输出成多行:
pngmate ken.gif ken.png -align 6
ken.gif
ken.png
ken.gif直接转成的ken.png体积比较大,而且我们实际做游戏根本用不到这么大的角色,那么可以用resize来改变帧的大小,我们在下面的例子里高度指定为0,意思是根据给定的宽和原图的比例自动运算出新图片的高:
pngmate ken.gif ken1.png -resize 64x0 -align 6
ken1.png
pngmate ken.gif ken2.png -resize 64x0 -frameskip 1
ken2.png
好,小了将近一半了,再想缩小图片,可以采用减少图片使用的颜色数的办法,一般来说,使用的颜色越少,图片体积越小,当然相应的图像质量也会下降,不过我们完全可以多试几次,在图片体积和图像质量中达到一个最佳平衡点:
pngmate ken.gif ken3.png -resize 64x0 -frameskip 1 -colors 40
ken3.png
怎么样,虽说图像质量稍有下降,但看上去并没有比ken2.png差太多,不过体积可又减小了将近一半!
做完了这些工作,是不是很想看看现在的缩小版Ken动画的实际效果?再转回动画gif当然是最直接的办法,不用求助美工,pngmate一样帮你搞定!采用split命令可以把输入的图片切分成多帧,而我们的ken3.png只有一行,这一行上水平排列了6帧,所以应该切分成6列 x 1行,因此用下面的命令行:
pngmate ken3.png ken1.gif -split 6x1
ken1.gif
还不错吧?不过看上去比原来的动作慢了一点,这是因为没有指定gif的帧间延迟,所以PngMate采用了默认值200毫秒(每秒5帧),对我们的动画来说确实慢了一些,没关系,可以用delay命令来指定输出gif的帧间延迟:
pngmate ken3.png ken2.gif -split 6x1 -delay 150
ken2.gif
怎么样,是不是感觉好多了?
我们刚才处理的小男孩图片现在也来看看动态效果,但是想起来没有,我们刚才删除了其中一个重复帧,这样如果直接生成gif的话,动作就不连贯了,怎么办呢?别急,pngmate还提供了帧序列处理命令select,可以用它来选择部分帧,而且帧序号可以重复哟,所以只要用下面的命令就可以做到:
pngmate boy4.png -split 3x1 boy1.gif -delay 150 -select 0,1,0,2
大家可以从上面的例子里看到,pngmate对参数的顺序要求是很宽松的,可以像前面的例子一样,把命令可以写在输入、输出文件的后面,也可以写在它们的前面甚至中间。但是crop和resize命令如果组合使用,那么处理的顺序就是命令行中它们出现的的先后顺序。同样,对于frameskip, select, delete这三个帧序列处理命令,它们如果同时出现,那么也是按照在命令行中出现的先后顺序来依次执行。好像有点复杂,不过话说回来,在绝大多数场合下,没有必要组合使用这些命令。
当我们要使用select命令或者delete命令来操作帧序列的时候,遇到帧比较多的情况,挨个数帧编号也是挺麻烦的一件事情,因此pngmate特别提供了在图片上加注数字编号的功能,你可以用这个功能生成一张参考图片来方便工作:
pngmate ken.gif ken4.png -numbered -align 6
ken4.png
PngMate的命令差不多都给大家介绍完了,下面我们来实战一个稍微复杂点的例子,从一张包含了所有帧的png图片生成小男孩向各个方向走的连续动画:
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
boyall.gif
这命令行看上去有些复杂,不过其实就是那个select命令稍微长了一点,它依次指定了所有动画帧,其它的命令都是老朋友了,只不过这次组合起来一起用而已。
如果我有大量的图像文件想使用PngMate批量处理怎么办呢?虽然PngMate本身不支持批量处理文件,但你可以使用批处理文件(.bat文件)或者dos命令"for"来轻松的实现批处理功能。对于很多简单的处理,for命令就能搞定。严格说来,这已经不是本教程讨论的范畴,不过大家可能对for命令不太熟悉,我可以抛砖引玉介绍一二。
for命令的基本格式是for %变量 in (范围) do ...
do后面可以使用任何命令行命令,且中间可以使用前面的变量,比如在下面的例子中,我们将为当前目录下每张jpg图片生成一张64x64,60色的png预览图,文件名为原来的文件名去掉.jpg扩展名后再加上.png扩展名,那么:
假设我有个S60的游戏,想往S40平台移植,要把所有图片整体按比例缩小到原来的72.7%(128/176),那么用for命令可以这么做:
md s40
for %I in (*.png) do @pngmate %I s40\%I -resize 72.7% -colors 16
当然这只是举个例子,如果你也这么干的话,你的游戏的S40版本估计十有八九是个垃圾了,因为pngmate缩小后的图片比起专门绘制的像素图,那质量当然是差远了。真正负责任的开发者还是应该专门为40版本绘制相应大小的像素图,千万不要跟笔者一样偷懒哦!
pngmate ken.gif ken.png -align 6
ken.gif
ken.png
ken.gif直接转成的ken.png体积比较大,而且我们实际做游戏根本用不到这么大的角色,那么可以用resize来改变帧的大小,我们在下面的例子里高度指定为0,意思是根据给定的宽和原图的比例自动运算出新图片的高:
pngmate ken.gif ken1.png -resize 64x0 -align 6
ken1.png
JAVA手机网[www.cnjm.net]
JAVA手机网[www.cnjm.net]
可是这样生成的png还是有点大,我们可以用frameskip来跳过一部分帧,这样动作虽然不如原来流畅,但是图片体积也相应大大减小了:pngmate ken.gif ken2.png -resize 64x0 -frameskip 1
ken2.png
好,小了将近一半了,再想缩小图片,可以采用减少图片使用的颜色数的办法,一般来说,使用的颜色越少,图片体积越小,当然相应的图像质量也会下降,不过我们完全可以多试几次,在图片体积和图像质量中达到一个最佳平衡点:
pngmate ken.gif ken3.png -resize 64x0 -frameskip 1 -colors 40
ken3.png
JAVA手机网[www.cnjm.net]
怎么样,虽说图像质量稍有下降,但看上去并没有比ken2.png差太多,不过体积可又减小了将近一半!
做完了这些工作,是不是很想看看现在的缩小版Ken动画的实际效果?再转回动画gif当然是最直接的办法,不用求助美工,pngmate一样帮你搞定!采用split命令可以把输入的图片切分成多帧,而我们的ken3.png只有一行,这一行上水平排列了6帧,所以应该切分成6列 x 1行,因此用下面的命令行:
JAVA手机网[www.cnjm.net]
pngmate ken3.png ken1.gif -split 6x1
ken1.gif
还不错吧?不过看上去比原来的动作慢了一点,这是因为没有指定gif的帧间延迟,所以PngMate采用了默认值200毫秒(每秒5帧),对我们的动画来说确实慢了一些,没关系,可以用delay命令来指定输出gif的帧间延迟:
pngmate ken3.png ken2.gif -split 6x1 -delay 150
ken2.gif
怎么样,是不是感觉好多了?
我们刚才处理的小男孩图片现在也来看看动态效果,但是想起来没有,我们刚才删除了其中一个重复帧,这样如果直接生成gif的话,动作就不连贯了,怎么办呢?别急,pngmate还提供了帧序列处理命令select,可以用它来选择部分帧,而且帧序号可以重复哟,所以只要用下面的命令就可以做到:
pngmate boy4.png -split 3x1 boy1.gif -delay 150 -select 0,1,0,2
JAVA手机网[www.cnjm.net]
boy1.gifJAVA手机网[www.cnjm.net]
大家可以从上面的例子里看到,pngmate对参数的顺序要求是很宽松的,可以像前面的例子一样,把命令可以写在输入、输出文件的后面,也可以写在它们的前面甚至中间。但是crop和resize命令如果组合使用,那么处理的顺序就是命令行中它们出现的的先后顺序。同样,对于frameskip, select, delete这三个帧序列处理命令,它们如果同时出现,那么也是按照在命令行中出现的先后顺序来依次执行。好像有点复杂,不过话说回来,在绝大多数场合下,没有必要组合使用这些命令。
当我们要使用select命令或者delete命令来操作帧序列的时候,遇到帧比较多的情况,挨个数帧编号也是挺麻烦的一件事情,因此pngmate特别提供了在图片上加注数字编号的功能,你可以用这个功能生成一张参考图片来方便工作:
pngmate ken.gif ken4.png -numbered -align 6
ken4.png
PngMate的命令差不多都给大家介绍完了,下面我们来实战一个稍微复杂点的例子,从一张包含了所有帧的png图片生成小男孩向各个方向走的连续动画:
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
boyall.gif
JAVA手机网[www.cnjm.net]
这命令行看上去有些复杂,不过其实就是那个select命令稍微长了一点,它依次指定了所有动画帧,其它的命令都是老朋友了,只不过这次组合起来一起用而已。
如果我有大量的图像文件想使用PngMate批量处理怎么办呢?虽然PngMate本身不支持批量处理文件,但你可以使用批处理文件(.bat文件)或者dos命令"for"来轻松的实现批处理功能。对于很多简单的处理,for命令就能搞定。严格说来,这已经不是本教程讨论的范畴,不过大家可能对for命令不太熟悉,我可以抛砖引玉介绍一二。
for命令的基本格式是for %变量 in (范围) do ...
do后面可以使用任何命令行命令,且中间可以使用前面的变量,比如在下面的例子中,我们将为当前目录下每张jpg图片生成一张64x64,60色的png预览图,文件名为原来的文件名去掉.jpg扩展名后再加上.png扩展名,那么:
JAVA手机网[www.cnjm.net]
for %I in (*.jpg) do @pngmate %I %~nI.png -resize 64x64 -colors 60JAVA手机网[www.cnjm.net]
假设我有个S60的游戏,想往S40平台移植,要把所有图片整体按比例缩小到原来的72.7%(128/176),那么用for命令可以这么做:
md s40
for %I in (*.png) do @pngmate %I s40\%I -resize 72.7% -colors 16
当然这只是举个例子,如果你也这么干的话,你的游戏的S40版本估计十有八九是个垃圾了,因为pngmate缩小后的图片比起专门绘制的像素图,那质量当然是差远了。真正负责任的开发者还是应该专门为40版本绘制相应大小的像素图,千万不要跟笔者一样偷懒哦!
发表评论
-
什么是WAP网关?
2011-10-17 17:09 10151. 什么是WAP网关? WA ... -
判断用户通过手机访问wap还是电脑直接访问
2011-10-17 16:29 1989首先说最根本的解决 ... -
wap的全面解析!!
2011-10-17 16:29 18121. 开发WAP软件需要哪 ... -
j2me library failed to get library information[转]
2010-12-11 21:59 1163出現過類似問題,我是每次都用的run as...->ru ... -
j2me联网时候对于代理问题可能会出现的错误【转】
2010-12-11 11:30 775众所周知,CMWAP是一个网关,同时又是一个代理服务器,我 ... -
在无线J2ME设备上实现超文本传输协议【转】
2010-12-11 11:27 758随着越来越多手提电 ... -
J2ME使用Socket通过cmwap接入点访问安全HTTPS 2【转】
2010-12-11 11:26 1260新建一个Midp应用程序,在startApp中加入以下代码: ... -
J2ME使用Socket通过cmwap接入点访问安全HTTPS1 【转】
2010-12-11 11:25 1400这个问题是在我升级J2ME版XHTML浏览器的时候被引入的,我 ... -
J2ME无线联网技术中的HTTP连接[转]
2010-12-11 11:24 861import java.io.ByteArrayOutputS ... -
wml教程 中文手册
2010-12-11 01:02 902http://www.g168.net/txt/wml/ ... -
j2me结合j2ee实现用户登陆功能-2【转】
2010-12-11 00:41 948服务器代码:LoginServlet:package co ... -
j2me结合j2ee实现用户登陆功能【转】
2010-12-11 00:40 847手机客户端代码:LoginForm:package com ... -
独立WAP交友网站趋势分析
2010-12-10 19:28 975从互联网开始,交友网 ... -
什么是WAP?wap技术简介(转)
2010-12-10 19:25 974程序员都在讨论Wireless(无线)技术,也就是常说到的WA ... -
j2me游戏开发:控制飞机移动(转)
2010-12-10 19:01 9121. 飞机plane是一个标准的plane。由三桢画面组成,: ... -
j2me游戏开发:工具类的完善(转)
2010-12-10 19:00 934虽然我们有了midp2.0的支持,但是有时还是需要一些辅助工具 ... -
J2ME程序教程,程序+讲解,很好的入门教程(转载) 【2】
2010-12-10 18:59 723J2ME RPG游戏边学边做(二) 1、public vo ... -
J2ME程序教程,程序+讲解,很好的入门教程(转载) 【1】
2010-12-10 18:58 1120J2ME RPG游戏边学边做(一) 笔者以前是做j2ee的 ... -
J2ME内存优化(转载)
2010-12-10 18:58 873Out momory 一阵天旋地转 ... -
PngMate使用教程1(转)
2010-12-10 18:56 1311PngMate使用教程 JAVA手机网[www.cnjm.n ...
相关推荐
使用`pngmate-gif2png`,你需要具备基本的命令行操作知识,例如在命令提示符窗口中定位到工具所在的目录,并输入相应的命令。基本使用方法通常是输入`PngMate.exe input.gif output.png`,其中`input.gif`是源GIF...
在使用PngMate时,需要注意的是,命令行工具通常需要一定的学习曲线,特别是对于那些不熟悉命令行操作的用户。然而,一旦掌握了基本的命令和参数设置,就能享受到它带来的高效和灵活性。对于初学者,可以参考官方...
2. 尺寸调整:PNGMate允许用户快速调整图片大小,适应不同分辨率的手机屏幕。这一步骤可以减少图片占用的存储空间,同时确保在各种设备上都能正确显示。 3. 颜色优化:在J2ME平台上,由于硬件限制,通常支持的颜色...
在实际应用中,使用pngMate通常涉及以下步骤: 1. 安装pngMate:根据你的操作系统,下载并安装对应版本的pngMate。 2. 执行命令:通过终端或命令提示符,定位到含有PNG图片的目录,并输入pngMate命令加上相应参数。...
2. **图像格式转换**:PngMate支持多种图像格式之间的转换,如PNG、JPG、GIF等。这种能力对于游戏开发者来说至关重要,因为他们需要根据不同的平台和设备优化图像格式。 3. **尺寸调整**:该工具能够轻松调整图像的...
PNGMate是用于PNG和Animated GIF(gif89a)图像的命令行工具,专为移动游戏开发商和美术师设计,具有以下功能:优化/缩小PNG,减少颜色,在ani-gif和平铺的png之间转换,基于平铺调整大小和裁剪等
将GIF转换为PNG序列,可以让开发者分别处理每一帧,从而优化颜色使用,减小文件大小,这对于手机游戏的性能优化尤其关键,因为手机设备的内存和处理器资源相对有限。 "手机游戏软件动画编辑器"的PngMate.exe程序...
使用PngMate时,用户只需导入GIF文件,软件会自动分析并分割出每一帧,保存为PNG格式。这个过程可以极大地简化开发者的任务,让他们能专注于游戏或应用的其他核心功能。对于需要创建动态效果或交互式界面的开发者来...