12306图片验证码效果实现

原创 2016年08月31日 15:53:37

效果如下:

演示图片

原理:从服务器获取的图片上,我们画上自己的图片,然后再显示出来。

核心代码如下在处理imageview点击事件前做如下操作:

   Bitmap bitmap = BitmapFactory.decodeResource(getResources(),  R.mipmap.yanzheng);//获取背景图片bitmap对象
Bitmap bm3 = BitmapFactory.decodeResource(getResources(),  R.mipmap.yanzheng);//获取我们要画上的图片的bitmap对象
Bitmap bmCopy = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());//复制背景bitmap
paint = new Paint();
 canvas = new Canvas(bmCopy);
canvas.drawBitmap(bitmap, new Matrix(), paint);//画下源背景bitmap
img.setImageBitmap(bmCopy);//为imageview设置图片即背景图片的副本

下面我们要处理imageview的点击事件,使其能够在点击的时候,在上面画上一个我们的图标:

   img.setOnTouchListener(new View.OnTouchListener() {

        //触摸屏幕时,触摸事件产生时,此方法调用
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
            switch (action) {
                //用户手指摸到屏幕
             case MotionEvent.ACTION_DOWN:
                    startX = (int) event.getX();
                    startY = (int) event.getY();//得到触摸时的坐标
                    break;
                //用户手指正在滑动
             case MotionEvent.ACTION_MOVE:
             case MotionEvent.ACTION_UP:
             //手指离开时画图
                    canvas.drawBitmap(bm3, startX, startY, paint);
                    img.setImageBitmap(bmCopy);//为image设置图片
                    break;

            }
            //true:告诉系统,这个触摸事件由我来处理
            //false:告诉系统,这个触摸事件我不处理,这时系统会把触摸事件传递给imageview的父节点
            return true;
        }
    });

源码如下,请看第3次提交:app订票

版权声明:本文为博主原创文章,转载时请著名出处:http://blog.csdn.net/dg_summer

相关文章推荐

DataCastle[验证码识别竞赛]——思路与代码

进入正题队名:临兵斗者皆阵列前行 代码:已上传到github MIT协议,放心使用,欢迎Star 本次放出代码,旨在抛砖引玉,期待能看到更多更好的竞赛代码分享,共同进步! 代码风格略凌乱...

图像验证码识别(九)——训练和识别

前面讲到已经把所有的字符经过去干扰、分割和归一化得到标准大小的单个字符,接下来要做的就是识别验证码了。现在要做的基本上也就和OCR没什么区别了,因为得到的字符已经是尽可能标准的了。下面的识别分为两个步...

图像验证码识别(三)——基本流程讨论

图像验证码的识别很类似OCR,不过验证码的功能就是防止机器人暴力破解,因此相比于OCR,图片上的干扰因素要多的多。因此如果直接读取图片的特征值进行训练,这样正确率会非常低。 常见的验证码干扰有很...

构造验证码训练集

1,生成带有字符的图片 使用PIL库中的Image,ImageFont,ImageDraw三个模块 im = Image.new("L",(420,80),255) dr = ImageDraw....

图像验证码的识别(一)——浅谈bmp文件格式

上个学期,用openCV做了一个OCR的课程设计,主要就是对图片验证码进行识别。最近新开学闲来无事,想想还是总结一下比较好,首先还是对图片的存储格式来介绍一下。 在计算机图形学里,图片就是一个像素的矩...

验证码识别之模型训练

参考:(http://www.cnblogs.com/louyihang-loves-baiyan/p/5038758.html) 整个思路大致如下: Step 1: 数据集准备:http:/...

训练样本集

原文链接:http://blog.csdn.net/qq_14845119/article/details/51913171 ImageNet          ImageNet是一个计算...

Django1.8 python3 验证码 ImageFont.truetype IOError:cannot openresource

font=ImageFont.truetype("ARIAL.TTF", random.randrange(25,50)) 一个简单的解决办法是:改为font=ImageFont.load_defa...

从12306网站新验证码看Web验证码设计与破解

铁路官方购票网站12306又出新招,在登录界面推出了全新的验证方式,用户在填写好登录名和密码之后,还要准确的选取图片验证码才能登陆成功。据悉,12306验证码改版后,目前所有抢票工具都已经无法登录。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)