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);
        }
       
    }
  • 相关阅读:
    hdu-1116(欧拉回路+并查集)
    hdu-1143(简单dp)
    hdu-1141
    JAVA里面获取map的key和value的方法
    MySQL中Date,DateTime,TimeStamp和Time的比较
    idea中修改git提交代码的用户名
    spring配置多个视图解析
    判断Map集合中是否存在某一个key
    win10家庭版升级为win10专业版
    MyBatis模糊查询的三种拼接方式
  • 原文地址:https://www.cnblogs.com/suanai/p/12753649.html
Copyright © 2011-2022 走看看