2

ビットマップを作成し、テクスチャとしてロードする必要があります (プログラムでビットマップを作成し、いくつかの図面を作成してからテクスチャにバインドします)。

ファイルシステムからビットマップをロードするのはこのようなものです

    private int images[] = {
            R.drawable.one,
            R.drawable.two,
            R.drawable.six,
            R.drawable.five,
            R.drawable.three,
            R.drawable.four,
};

私のloadTexture関数は次のようになります

public void loadGLTexture(GL10 gl, Context context) {
        // Generate texture pointer
        gl.glGenTextures(images.length, textures, 0);
        for (int image = 0; image < images.length; image++) {
            // bind texture pointer 
            gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[image]);
            // create nearest filtered texture
            gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
            gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
            // different possible texture parameters, e.g. GL10.GL_CLAMP_TO_EDGE
            gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT);
            gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT);
            // get the texture from the Android resource directory
            {
                InputStream is = context.getResources().openRawResource(images[image]);
                Bitmap bitmap = null;
                try {
                    // BitmapFactory is an Android graphics utility for images
                    bitmap = BitmapFactory.decodeStream(is);
                } finally {
                    try {
                        // Always clear and close
                        is.close();
                        is = null;
                    } catch (IOException e) {
                    }
                }
                // use Android GLUtils to specify a 2D texture image from our bitmap
                GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
                // cleanup
                bitmap.recycle();
            }
        }

最後に、キャンバスを描画してビットマップに保存する機能があります。(今は1つだけです)作成したビットマップを画像配列に適用する方法を知りたいです。

public Bitmap onDraw( Canvas canvas) {
    Paint paint = new Paint();
    canvas.drawColor(Color.BLUE);

   Bitmap one = Bitmap.createBitmap(256, 256, Bitmap.Config.RGB_565);
   Canvas c = new Canvas(one);
   canvas.drawRect(0, 0, 256, 256, paint);

   paint.setTextSize(40);
   paint.setTextScaleX(1.f);
   paint.setAntiAlias(true);
   canvas.drawText("Your text", 30, 40, paint);
   paint.setColor(Color.RED);
return one;

}

ビットマップを int[] 配列にロードするにはどうすればよいですか?

ありがとう

4

0 に答える 0