package library.core.system;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;

import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;

public class CoreImageFactory {


	private Context context;

	public CoreImageFactory(Context context){
		this.context=context;
	}


	//画像のロード
	//imageDataは取得した情報をプールに保存するために引数に追加
	public Bitmap load(CoreImageData data, HashMap<String, Bitmap> imageDatas){


		AssetManager assetManager=context.getResources().getAssets();
		InputStream input=null;

		try{
			input=assetManager.open(data.getFileName());
		}catch(IOException e){
			Log.e("error","not find "+data.getFileName()+" file");
		}

		Bitmap bmp=null;

		int x=data.getPointX();
		int y=data.getPointY();
		int w=data.getSpritW();
		int h=data.getSpritH();

		//画像を軽くする処理　重くなったら考える
		/*BitmapFactory.Options o=new Options();
		o.inPreferredConfig=Config.ARGB_4444;
		o.inPurgeable=true;
*/

		if(data.isSpriteImage()){
			//bmp= Bitmap.createBitmap(BitmapFactory.decodeStream(input, null, o),x*w, y*h, w, h);
			bmp= Bitmap.createBitmap(BitmapFactory.decodeStream(input),x*w, y*h, w, h);
		}else{
			//bmp= BitmapFactory.decodeStream(input,null,o);
			bmp= BitmapFactory.decodeStream(input);
		}



		imageDatas.put(data.getFileName()+"["+x+","+y+"]",bmp);

		return bmp;

	}

}

