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);
        }
       
    }
  • 相关阅读:
    [轉]Linux kernel <2.6.29 exit_notify() local root exploit分析(2009-1337)
    [轉]udp_sendmsg空指针漏洞分析 by wzt
    linux 中mmap的用法
    [轉]Exploit The Linux Kernel NULL Pointer Dereference
    [轉]Exploit Linux Kernel Slub Overflow
    Linux 2.6.x fs/pipe.c local kernel root(kit?) exploit (x86)
    字符串哈希专题
    树形DP
    ACM中的正则表达式
    回文树学习笔记
  • 原文地址:https://www.cnblogs.com/suanai/p/12753649.html
Copyright © 2011-2022 走看看