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に収めることが可能です。
画像は容量削減の最大の敵ですからね…こちらも最大限工夫して挑みましょう!