pngのパレット変換等、実行ファイルの容量削減について色々と述べてきました。


 それもこれも携帯機器での実行という環境のせいなのですが…そこを言っては元も子もありませんし、例えどのような環境で実行するにしても、ファイル容量を削減するに越したことはありません。





 さて、今日は一枚の画像ファイルを複数に分割することを考えましょう。


public Image[] makeImagechip(Image img,int col,int row) {


/* img :分割前の画像


* col :横に分割する個数


* row:縦に分割する個数


*/


 int width = img.getWidth()/col;


 int height = img.getHeight()/row;

Image[] result = new Image[col*row];


 for(int i=0;i<col;i++){


   for(int j=0;j<row;j++){

     result[i*row+j] = Image.createImage(img, i*width, j*height, width, height, Sprite.TRANS_NONE);


   }

}

return result;

}





 目新しいものと言えばSprite.TRANS_NONEでしょう。


 これは前にも述べたSpriteクラスで定義されている定数で、画像コピー時の変形方法と捉えてかまいません。


この他には左右反転するTRANS_MIRROR や 180度回転するTRANS_ROT180、これらを組み合わせたTRANS_MIRROR_ROT180等があり、わざわざ自分で定義しなくても高度な機能を提供してくれます。





これで、共通のパレットを持った複数の画像を一枚のpngに収めることが可能です。


画像は容量削減の最大の敵ですからね…こちらも最大限工夫して挑みましょう!