`
modabobo
  • 浏览: 511941 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
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");
}
}
}
}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics