网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.可以获得键值的Applet.
.中国年历算法和程式.
.构建器的调用顺序.
.Robocode 高手的秘诀:躲避子弹.
.Struts Layout.
.始终会用上的Common BeanUtils.
.深入理解Java延迟绑定.
.Struts开发指南之J2EE n层结构.
.常见的Application Server.
.使用JDBC创建数据库对象(2).
.sun Technical Training NOTE.
.java编程:关于对Vector的一点理.
.一步一步用JBuilder5开发EJB(下).
.JAVA对大数值的计算.
.ClassLoader介绍.
.java基础之api零碎总结.
.引用已定义过的包.
.什么是EJB.
.跟我学Java Swing之游戏设计(3).
.MyEclipse 4.1 M2&nbs.

古代帝国中的图片资源节省算法

发表日期:2008-1-5


代码:

 /**
  * 图片转换
  * @param content 原始图片信息
  * @param type 类型,1 :中立角色 2 : 敌方 0 :自己
  */
 public static void imgConvert(byte content[], int type){
  try{
   int pos = 33;
   int relpos = 0;
   relpos = ((content[pos] & 0xff) << 24 (content[pos + 1] & 0xff) << 16 (content[pos + 2] & 0xff) << 8 content[pos + 3] & 0xff) & -1;
   pos += 4;
   int newcolor = -1;
   for(int idx = 0; idx < 4; idx++)
    newcolor = pixelConvert(content[pos + idx], newcolor);

   pos += 4;
   boolean flag = true;
   boolean flag1 = false;
   boolean flag2 = false;
   for(int idx = pos; idx < pos + relpos; idx += 3){
    int b = content[idx] & 0xff;
    int g = content[idx + 1] & 0xff;
    int r = content[idx + 2] & 0xff;
    if(r > b && r > g){
     //绿色和蓝色互换,中立角色
     if(type == 1){
      int tmp = b;
      b = g;
      r = b;
      g /= 2;
      }
      //转换为红色,敌人角色
     else if (type == 2){
      b = r;
      g = r;
      }
     content[idx] = (byte)b;
     content[idx + 1] = (byte)g;
     content[idx + 2] = (byte)r;
     }
    newcolor = pixelConvert(content[idx], newcolor);
    newcolor = pixelConvert(content[idx + 1], newcolor);
    newcolor = pixelConvert(content[idx + 2], newcolor);
    }
   
   newcolor = ~newcolor;
   int actpos = 41 + relpos;
   content[actpos] = (byte)(newcolor >> 24);
   content[actpos + 1] = (byte)(newcolor >> 16);
   content[actpos + 2] = (byte)(newcolor >> 8);
   content[actpos + 3] = (byte)newcolor;
   }
  catch(Exception e){}
  }
 
 /**
  * 像素转换
  * @param pixel 像素
  * @param color 颜色值
  * @return
  */
 public static int pixelConvert(byte pixel, int color){
  int tmp = pixel & 0xff;
  color ^= tmp;
  for(int idx = 0; idx < 8; idx++)
   if((color & 1) != 0)
   //土黄色
    color = color >>> 1 ^ 0xedb88320;
   else
    color >>>= 1;
  return color;
  }


上一篇:诺基亚Series 40开发者平台介绍 人气:737
下一篇:3D编程指南第二部分:光的3D理论与定位 人气:611
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐