zoukankan      html  css  js  c++  java
  • 钢镚儿冲刺一周期第二天

    一、说在前面

      昨天通过java对图片像素点的操作,在导入图片的时候遇到了一些问题,遍历的时候效率不高的问题。在询问和接受我姐夫的建议之后,我认为还是使用Android的语言更好一些,今天打算通过Android实现对图片的像素操作。

    二、大体思路

      和java相同,但是换成Android的语言应该会略有不同。

    三、代码

    public class MainActivity extends Activity implements OnClickListener
    {
        private Button but_old = null;
        private Button but_func = null;
        private ImageView iv_show = null;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.picture_tuise);
    
        @Override
        public void onClick(View v)
        {
            switch (v.getId())
            {
                case R.id.btn_one:
                    func();
                    break;
                case R.id.btn_two:
                    iv_show.setImageResource(R.drawable.f);
                    break;
            }
    
        }
        //褪色处理
        public void func()
        {
            Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.f);
            int width = bitmap.getWidth();
            int height = bitmap.getHeight();
            Bitmap base = Bitmap.createBitmap(width, height,bitmap.getConfig());
    //        Bitmap B=toGrayscale(base);
            Canvas canvas = new Canvas(base);//以base为模板创建canvas对象
            canvas.drawBitmap(bitmap, new Matrix(),new Paint());
    
            for(int i = 0; i < width; i++)//遍历像素点
            {
                for(int j = 0; j < height*0.5; j++)
                {
                    int color = bitmap.getPixel(i, j);
    
                    int r = Color.red(color);
                    int g = Color.green(color);
                    int b = Color.blue(color);
                    int a = Color.alpha(color);
    
                    int avg = (r+g+b)/3;//RGB均值
    
                    if(avg >= 150)//100可以理解为经验值
                    {
                        base.setPixel(i, j,Color.argb(a, 255, 255, 255));//设为白色
                    }
                    else
                    {
                        base.setPixel(i, j,Color.argb(a, 0, 0, 0));//设为黑色
                    }
                }
            }
            bitmap.recycle();
            iv_show.setImageBitmap(base);
        }
       
    }
  • 相关阅读:
    [转]基于S2SH框架的项目—antlr-2.7.2.jar包冲突问题
    输入法那没有小键盘的图标解决方法
    Chrome百度不显示中文字体
    转:数据库范式(1NF 2NF 3NF BCNF)
    转:海明纠错码
    奇阶魔方阵
    字符串的模式匹配
    红黑树
    排序算法总结
    关于面试总结9-接口测试面试题
  • 原文地址:https://www.cnblogs.com/suanai/p/12753649.html
Copyright © 2011-2022 走看看