C#.NET验证码智能识别学习笔记---04C#.Net图片操作
技术qq交流群:JavaDream:251572072
 教程下载,在线交流:it.yunsit.cn
 ----------------------------------------------
 下面直接把代码贴出来了,注释写的很清楚不明白的留言把..
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing.Imaging;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 验证码识别操作
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

private void button1_Click(object sender, EventArgs e)
        {
            //一,图像操作
            //.net的语法细节这里不再说了
            //这个时候图片已经被加载到内存中了
            //这里用Using进行资源的释放,以为Bitmap是一个实现了IDisposable接口类型
            //关于using的用法看上一篇教程
            //using(Bitmap bitmap = (Bitmap)Image.FromFile(@"G:\NET学习\workspace\验证码识别系统用到的资源\abc.jpg"))
            // {
            //    //保存图片,第一个是图片路径,第二个参数是保存格式
            //    //bitmap.Save(@"G:\NET学习\workspace\验证码识别系统用到的资源\Test.gif",ImageFormat.Gif);
            //    //所有图片都是由像素点组成的,图片的像素坐标从左上角开始的,向右是x坐标,向下是y坐标
            //    //这里对图像的处理在c#.net中可以用getPixel,SetPixel方法取得设置像素
            //    //但是这种方法的效率是很低的,在c#.net也可以使用c++语法,使用指针操作效率最高
            //    //-------------------------------------------------------------------------
            //    //a.取得某个点的像素
            //     Color c = bitmap.GetPixel(3, 3);//取得这个坐标的像素

//    //这里用getPixel,SetPixel方法对图片操作
            //     for (int i = 0; i < 100; i++) {
            //         bitmap.SetPixel(i, 0, Color.Red);
            //         //1.这时候修改的是内存中的图片
            //     }
            //    //2.保存图片
            //     bitmap.Save(@"G:\NET学习\workspace\验证码识别系统用到的资源\credream.jpg");
            b.取得像素的另一个方法 Color.FromArgb()
            //     Color colors = Color.FromArgb(255, 255, 255);
            //    //--------------------------------------------------------------
            //

//}

//二,接下来说一个图像处理技巧:图片反色
            //复杂的程序一般不会直接操作本来的那个图片上操作的,应该新建一张图
            //
            using (Bitmap bitmap = (Bitmap)Image.FromFile(@"G:\NET学习\workspace\验证码识别系统用到的资源\abc.jpg"))
            { 
            //using (Bitmap bitmap = (Bitmap)Image.FromFile(@"G:\NET学习\workspace\验证码识别系统用到的资源\abc.jpg"))
            using (Bitmap newBmp = new Bitmap (bitmap .Width ,bitmap .Height ))
            {
                //a.取得宽度的所有点
                for (int i = 0; i < newBmp.Width;i++ ) {
                    //b.取得长度的所有的点
                    for (int j = 0; j < newBmp.Height;j++ ) {
                        Color c1 = bitmap.GetPixel(i, j);
                       //c.取得所在点的像素
                        Color c2 = Color.FromArgb(255 - c1.R, 255 - c1.G, 255 - c1.B);
                        //c.取得相反像素
                        newBmp.SetPixel(i, j, c2);
                        //d.在取得的位置进行相反像素的设置
                        //这时候是在内存中改的
                    }
                }
                newBmp.Save (@"G:\NET学习\workspace\验证码识别系统用到的资源\newqufan.jpg");
            }
            }         
        }
    }
}

C#.NET验证码智能识别学习笔记---04C#.Net图片操作相关推荐

  1. C#.NET验证码智能识别学习笔记---05C#.Net图片预处理

    C#.NET验证码智能识别学习笔记---05C#.Net图片预处理 技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn 图片经过下面的预处理以后就可 ...

  2. C#.NET验证码智能识别学习笔记---03#.Net中@符号的意思

    C#.NET验证码智能识别学习笔记---03#.Net中@符号的意思 技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn  @是取消字符串中的转意符 ...

  3. C#.NET验证码智能识别学习笔记---02-C#.Net中Using关键字的用法

    C#.NET验证码智能识别学习笔记---02-C#.Net中Using关键字的用法 技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn ------ ...

  4. C#.NET验证码智能识别学习笔记---01C#.NET验证码识别介绍

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn 1.大家知道用asp.net做网站的话,验证码是存在于服务器端的session中的,服务器是知道 ...

  5. C#.NET验证码智能识别学习笔记---06 解决java jre问题:JTessBoxEditor.jar打开的时报找不到或无法加载主类 com.sun.tools.javac.Main错误

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn 碰到了这个问题在网上搜了下, 问题描述:我的问题是在使用javac编译测试程序市,出现如下错误: ...

  6. 语音识别学习笔记(三)【动态时间归正的识别技术】

    语音识别学习笔记(三)[动态时间归正的识别技术] 1.概述  在语音识别中,简单的将输入模板和参考模板进行比较存在很大的缺陷,因为语音信号具有很大的随机性,即便是同一个人在不同时刻说同一句话,也不可能 ...

  7. 语音识别学习笔记(二)【基于矢量量化的识别技术】

    语音识别学习笔记(二)[基于矢量量化的识别技术] 概述  量化分为标量量化和矢量量化(Vector Quantization,VQ).标量量化是将采样后的信号值逐个进行量化,而适量量化是将若干个采样信 ...

  8. 语音识别学习笔记(一)【概述】

    语音识别学习笔记(一)[概述] 概述:  1)语音识别是机器通过识别和理解过程把人类的语音信号转变成相应的文本或命令的技术.  2)集 声学.语音学.计算机.信息处理.人工智能等于一身的综合技术. 难 ...

  9. 数字图像识别学习笔记(第二章-数字图像基础(1))

    title: 数字图像识别学习笔记(第二章 数字图像基础(1)) categories: 数字图像识别 tags: 数字图像识别 date: 2020/9/30 21:22 mathjax: true ...

最新文章

  1. information_schema中的所有表和视图
  2. MySQL三大范式详解(小白也能懂哦)
  3. [你必须知道的css系列]第一回:丰富的利器终结篇:选择符的组合关系及选择符总结...
  4. ajax请求在线库,跨域 jQuery库ajax请求
  5. [转帖]九句英语闯天下
  6. 2500亿规模,20%年增长,猎头平台化时代,谁的赢面最大? | 一点财经
  7. C语言猜拳游戏完整代码
  8. @DependsOn或depends-on配置的使用
  9. 解决jinjia2 for循环变量作用域问题
  10. dex字符串解密_Dex加密(上)
  11. flash player 11.2 64位 linux,Adobe Flash Player 11.2.202 Beta 1支持 64位操作系统
  12. 请说说自己对鲁迅本人他作品的了解计算机,“鲁迅作品复习”综合性学习试题及答案...
  13. qlib里alpha158因子库的计算与缓存
  14. SWUST OJ 480: Locker doors
  15. 7-4 房产税费计算2022 (12 分)
  16. 前后端项目对接流程梳理
  17. C语言--实现汉诺塔【图文讲解,附代码】
  18. 推特(twitter)翻译
  19. select下拉列表支持搜索功能
  20. 推荐:大文件查找,快速扫描,图像分析并清理硬盘垃圾文件的绝佳好工具!

热门文章

  1. Qt多线程间信号槽传递非QObject类型对象的参数
  2. 毕设日志——RCNN
  3. Python基础----Matplotlib_新增
  4. 02_感知机_统计学习方法
  5. Casper 机制的历史起源:第一篇
  6. python中字符串(str)的常用处理方法
  7. SMP、NUMA、MPP体系结构介绍
  8. 解决“终端服务器超过了最大允许连接数”
  9. 更新 箫心病毒分析专家2006 build 5.23(C#2.0)
  10. 从小编程,到架构师,我们应该具备什么