环境:eclipse,android,opengl es

           最近需要对纹理图像进行一些修改,首先需要加载纹理图片,并对纹理图片进行一些修改,最后再进行纹理对象的生成。

一、纹理图片的加载

      纹理图片的加载可以通过getResources().openRawResource(int)函数和bitmapFactory类进行加载。

 InputStream is = mContext.getResources().openRawResource(        R.drawable.map_lr_new_n);        Bitmap sbitmap = null;        try {    sbitmap = BitmapFactory.decodeStream(is);    // dst = revertBitmapColor(bitmap);        } finally {    try {        is.close();    } catch (IOException e) {        // Ignore.    }        }        @SuppressWarnings("deprecation")        Drawable drawable = new BitmapDrawable(sbitmap);        Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();                
二、纹理图片的修改

1、copy bitmap对象

从文件加入的图片不能修改,所以需要先将图像copy到另外一个bitmap对象。

 Bitmap bitmap2=bitmap.copy(bitmap.getConfig(), true);                ModifyBitmap(bitmap2);

2、修改bitmap对象

通过bitmap中的setPixel函数进行bitmap对象的修改,其中还涉及到int类型的rgb赋值。

 public void ModifyBitmap(Bitmap bitmap)    {    int nw=bitmap.getWidth();        int nh=bitmap.getHeight();        //int alpha=        int col1=0;    int col2=0;        for(int i=0;i>16;       int g=(p&  0x0000FF00)>>8;       int b= p&  0x000000FF;              int a=255-k*50;              p=(a<<24)|(r<<16)|(g<<8)|(b);                   int tempA=p;       bitmap.setPixel(j+1-k, i,tempA) ;                            }          }    }        }

三、纹理的绑定

使用opengl es中的函数对纹理进行绑定。

    if (bitmap != null) {    glBindTexture(GLES11.GL_TEXTURE_2D, drawTestTxId[0]);        glTexParameteri(GLES11.GL_TEXTURE_2D,    GLES11.GL_TEXTURE_MAG_FILTER, GLES11.GL_LINEAR);    glTexParameteri(GLES11.GL_TEXTURE_2D,    GLES11.GL_TEXTURE_MIN_FILTER, GLES11.GL_LINEAR);    glTexParameteri(GLES11.GL_TEXTURE_2D, GLES11.GL_TEXTURE_WRAP_S,    GLES11.GL_REPEAT);    glTexParameteri(GLES11.GL_TEXTURE_2D, GLES11.GL_TEXTURE_WRAP_T,    GLES11.GL_REPEAT);                GLUtils.texImage2D(GLES10.GL_TEXTURE_2D, 0, (bitmap 0);        bitmap.recycle();        }



更多相关文章

  1. 参考:修改android开机界面
  2. Android(安卓)SharedPreferences 存储复杂对象
  3. 利用Android(安卓)Studio、MAT对Android进行内存泄漏检测
  4. 利用Android(安卓)Studio、MAT对Android进行内存泄漏检测
  5. Android系统移植与调试之------->如何修改Android设备存储盘符名
  6. 深入浅析Android手机卫士保存密码时进行md5加密
  7. 修改Android开机画面
  8. Android(安卓)默认Tab标签大小及间距修改
  9. Android高手进阶教程(八)之----Android(安卓)Widget开发案例(世

随机推荐

  1. 学习unity android sdk 基本
  2. 系出名门Android(5) – 控件(View)之Text
  3. android对话框的使用(下)
  4. 日期匹配星座,月日匹配星座,android 星座
  5. Android Browser学习八 书签历史模块: 历
  6. Android中文API(98)—— ContextMenu.Conte
  7. Android(安卓)GPS定位详解
  8. Android用GSon处理Json数据
  9. android activty的生命周期
  10. android studio 连接手机(真机测试)windows