2013年5月29日水曜日

開発に手こずった事。(画像データの色情報変更!!)。

今回は、開発に変に手こずった事を記録しやす。


その手こずった部分ですが・・・・。


現在開発中のRPGアプリについてなんです。。。。


「RPG」には、というのがつきものです!!


仮に「100種類の敵を用意したい!!」と思えば、


100種類分の敵画像を用意するのがゲーム作りとしてベスト!!ですが・・・・・。。


私は、絵が描けませんし、

100匹分の画像を用意するとデータ量が多くなります。
(今のスマフォなら耐えれるとは思いますが・・・・・。。)

とにかくこれでは、時間がかかります!!!!出来れば、

少ない画像数でプログラム内で100種類の敵データを作成したい所です!!


ほんで、アホなりに考えた結果・・・・・・・・・・・・・・・・・・。。

画像の特定の色を変えて、色違いの敵を作成する!!

とぃう、よくあるパターン????の考えで落ち着く事にしました・・・・・・。。


ほんで、早速以下↓(大体の流れ)
/**************************************************************/

//色を変更した画像データ
※読み込み(済)
Bitmap bitmap;


※1


 //元画像のサイズ取得
 int height   = 画像縦サイズ;
 int width    = 画像横サイズ;

 //元画像のピクセル(色)情報の取得
 int[] pixels = new int[( width * height )];
 bitmap.getPixels( pixels, 0, width, 0, 0, width, height );

//ループで、色情報を変更していく。
for(  //※省略{

//色情報を変更
pixels[( pixY + pixX * width )] = Color.argb(透過, 赤, 緑, 青);

}//end loop

//最後に変更後のピクセル(色)情報を再設定
bitmap.setPixels( pixels, 0, width, 0, 0, width, height );

/**************************************************************/
とやると、

bitmap.setPixels( pixels, 0, width, 0, 0, width, height );

がエラーで落ちます・・・・・。。。

エラー内容を見ると、どうやら・・・。
「画像データを再設定出来ない!!」
的な感じ??でした・・・・・。。

というわけで、調べてみると・・・・・・・・・・。。

上記の※1の部分に、コレ↓
/**************************************************************/
//編集禁止画像を編集有効にするため(Copy??)
if( _bitmap.isMutable( ) != true ){
     _bitmap = _bitmap.copy( Bitmap.Config.ARGB_8888, true );
}
/**************************************************************/

を記述してやると無事、色情報を変更する事が出来ました!!

多分、

Bitmapデータをいじりたいなら・・・
許可がないBitmapデータは、編集出来んから、
偽者をコピーして作って、そいつをいじれ!!!

という事ですかね・・・・・???


まぁ、間違ってるかもしれませんが・・・・。。
とりま、これでダイジョウブでした!!

ってか、初めて真面目な事記録した感じッスww


お疲れしたぁぁっぁ!!!!

0 件のコメント:

コメントを投稿