用户: 密码: 答案:   我要注册   忘记密码

加入收藏  设为首页

开发文档

CNJM首页

业界新闻

手机软件

终端应用

资源下载

EclipseME

CNJM论坛

                 

频道列表

J2ME开发 176篇
服务器端开发 33篇
JAVA语言 71篇
游戏与图形 101篇
WindowsMobile开发 6篇
Symbian开发 61篇
Brew开发 36篇
其它开发平台 6篇

热点文章

PngMate使用教程 55907次
使用JavaMagic进行... 30178次
手机游戏修改(2)工具 20238次
手机游戏修改之浅谈 13045次
手机游戏修改(8)... 12572次
J2ME游戏开发笔记...  12141次
开发手机游戏的一...  11163次
J2ME潜艇大战游戏...  10788次
Java手机游戏编程...  10687次
手机游戏知识扫盲 10533次
手机盗版软件现状分析 10453次
J2ME游戏中的图片处理 10168次

文章搜索

搜 索
按 照
频 道
  
安全高效的使用PNG图
编辑:rocks    审核:rocks    文章来源:J2MEDev
关键词:png    发表日期:2006-03-27 16:35:05    浏览次数:7460次
本文版权归原作者,中国JAVA手机网收录本文的目的是让更多人阅读到此文章。转载请注明出处为中国JAVA手机网<www.cnjm.net>
来自:http://www.cnjm.net/tech/article1309.html

[转载于J2MEDev]
JAVA手机网[www.cnjm.net]

JAVA手机网[www.cnjm.net]
作者:gaogao


安全高效的使用PNG图
        众所周知,J2ME程序使用的最多的图片格式为PNG格式,如何在程序中使用PNG图片对于程序来说有很多的技巧,我将以我的一些经验技巧来讨论有关PNG图片在程序中的应用。

        通常情况,一个项目开始的时候策划出了需求,美工出了图片,程序员的代码也开始写了,程序员需要图片时,美工给的图片都为一张张静态的图片,然后通过引擎(或者一些工具)导成程序需要的动画序列,和图片数组,程序在Canvas中把图片数组按照图片序列标志的顺序、位置、桢数表现出来。动画是组成游戏的非常重要的部分。因而图片资源的大小、存储方式等对程序生成的jar文件的大小和耗费内存的多少有非常大的影响。在forum.nokia.com和J2ME WTK2.2的一些文档中我们可以看到一些关于图片资源如何优化的例子,在此我不予详述,但是提及,重点讲述我们的项目经验。
JAVA手机网[www.cnjm.net]

         在一些文档中建议我们把所有的资源都放在一张足够大的PNG图片里面,我们对图片进行分割,这样做有非常大的好处,但是有一些缺点,比如我们把一张大图片读入我们的程序里面的时候,我们在菜单部分仅仅需要和菜单那部分资源,不需要其他的资源,这样我们读出的部分显得就非常的浪费内存,我们可以采取把各种图片资源分别存放到几个大图片中,这样我们需要的时候把需要的部分从jar中读到内存,不需要的时候释放出去,这样可以保证一些运算内存比较小的设备使用很多图片资源,不会发生out of memory的异常或者错误。举个例子,一个游戏有菜单、玩游戏、排行榜这样三个部分,完全可以把图片分成三组存储,和菜单相关的存储为menu.png,游戏中的存储为game.png,排行榜需要的图片存储为range.png,我们进入菜单状态只读区menu.png这样程序浪费的内存相当少,进入游戏时先释放掉menu.png占用的资源,再调入game.png。在项目中这是非常好的应用实例。

        在我们的项目中,有时不需要使用切割图像,我们乐于使用一些大小一样的矩形方块状的图片(一些小的公司没有良好的引擎设计时,一般采用这种方式,一些大公司有专门做引擎的e,所以一般采用上面的方法且优化了上面的办法)。因为一些压缩算法、和图片存储格式等众多原因造成了如下状况:把很多png图形放到一张png图片里面省更多的空间。我们如何省空间呢?答案是:自己设计一个资源读取器,把需要的所有png图片读取成2进制码并且按照我们能够简单使用的格式写成一个二进制文件,我们只需要在程序中读取这个二进制文件,在把里面的png还原出来即可。我在我们的项目中发现,单独使用21张14*14的png图像,与巴这21张png重新写成一个二进制文件(不采用任何压缩算法),后者比前者在jar中节省了10KB。所以说,我们在做游戏的时候,如果没有非常好的引擎,可以采用我们办法来节省空间——把松散的图片用程序写成一个二进制文件,在j2me程序中把这些资源读取出来。
JAVA手机网[www.cnjm.net]

       综上,我叙述了两种不同的节省资源的方法,前一种需要比较强大的引擎支持,后一种则不需要,但是后一种确实节省的不如前一种多,但比单纯的用好多png图要节省的多而且不需要复杂的引擎。在未来,我会继续写一些我们项目中的经验。
来自:http://www.cnjm.net/tech/article1309.html

相关文章
    极限压缩JAR包中的图片  [2006-07-12]
    优化png图片的小工具  [2006-02-27]
    打造自由换色的png图片类  [2006-02-27]
    PngMate使用教程  [2006-02-15]
最新评论
网站简介  |  关于版权  |  广告服务  |  网站地图  |  联系我们
Copyright © www.CNJM.net, All rights reserved
中国JAVA手机网 版权所有
ICP备案:京ICP备041452