麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

關于游戲中高效的換色方法

2019-11-18 13:33:56
字體:
來源:轉載
供稿:網友

    眾所周知,我們可以使用getRGB()取得取得圖片的RGB顏色數據,然后修改RGB顏色數據,再用Image的靜態方法createRGBImage()將修改后的RGB顏色數據生成新的png圖片。但是這個方法效率低不說,而且就目前來說,假如要做中國市場,還得使用MIDP1.0。所以今天我想談一下另外一種換色方式,通過修改調色板數據來達到換色的目的,記得以前我在論壇發過一篇關于換色和旋轉圖片的文章,但是那次僅僅限于討論,這次要說的是我已經應用在實際游戲當中的換色方法

     首先,我們取得png圖片的二進制數據,修改其中的調色板域(PLTE chunk)數據,再使用createImage(byte[] imageData,int imageOffset,int imageLength)將修改后的二進制數據生成新的png對象。(換色是基于對圖像格式的熟悉來進行的,所以你必須先了解PNG圖片的格式,這個可以參考http://www.w3.org/TR/PNG/)


下面是獲得圖片調色板數據的方法(感謝飄飄白云的代碼)


             /**
               * 修改png圖片的調色板數據生成新的png圖片
               * @param imageSrc png圖片的二進制數據字節數組
               * @return 修改后的png圖片
               */
              public Image getPLTEModifidImage(byte[] imageSrc)
              {
                            if (imageSrc == null imageSrc.length <= 1)
                                          return null;
 
                            if (crcTable == null)
                                          makeCrcTable();
 
                            // PLTE chunk數據域的類型標識
                            // see http://www.w3.org/TR/PNG/#11PLTE
                            String[] sPLTE = {"50", "4c", "54", "45"};
 
                            int i,j;
                            int pos = 0,startPos = 0;
                            byte[] data = imageSrc;
                           
                            for (i = 0; i < data.length; i++)
                            {
                        if (Integer.toHexString(data[i]).equals(sPLTE[0])
                                                  && Integer.toHexString(data[i + 1]).equals(sPLTE[1])
                                                  && Integer.toHexString(data[i + 2]).equals(sPLTE[2])
                    && Integer.toHexString(data[i + 3]).equals(sPLTE[3]))
                        {
                                      pos = i;
                                      break;
                        }
                            }
                            pos -= 4;
                            startPos = pos;



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 全黄性色大片 | 性欧美视频在线观看 | 性猛交ⅹxxx乱巴西 在线播放中文 | 国产一区二区免费在线观看视频 | 国产 日韩 亚洲 欧美 | 天天干导航 | 美女在线观看视频一区二区 | 91久久精品一 | 黄色网欧美 | 欧美成年人视频 | 毛片在线视频免费观看 | 国产成人综合在线观看 | 亚洲第一成人久久网站 | 九九热精品在线视频 | 国产成人高清成人av片在线看 | 在线成人免费视频 | 欧美成人精品一区二区三区 | www.guochan| 日韩欧美精品电影 | 国产精品99久久久久久宅女 | 久久成人精品视频 | 亚洲成人国产综合 | 91福利社在线| 欧美中文字幕一区二区三区亚洲 | 国产精品久久久久久久久久久久午夜 | 国产免费福利视频 | 国产精品成人久久 | 久久精品久久久久 | 污版视频在线观看 | 久久精品国产精品亚洲 | 久色网站 | 久草中文网 | 国产91久久精品一区二区 | 久久久久久久久久亚洲精品 | 欧美xxxxx视频 | 国产精品视频中文字幕 | 青青草成人影视 | 国产超碰人人做人人爱 | 欧美高清在线精品一区二区不卡 | 欧美日韩中文字幕在线视频 | 国产一级免费在线视频 |