亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? validationimage.cs

?? 設(shè)置字體的顏色以和字體的樣式,如果有什么錯(cuò)誤請(qǐng)你們多多指教,請(qǐng)請(qǐng)?jiān)诩伊?
?? CS
字號(hào):
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace ValidationCode
{
    public class ValidationImage
    {
        Bitmap bmp;
        const int ww = 12;
        const int hh = 13;
        public ValidationImage(Bitmap bmp)
        {
            this.bmp = bmp;
        }

        public List<double> test()
        {
            Bitmap temp = Normalized(bmp);
            return this.GetPixelCollection(temp);
        }

        public List<List<double>> Operate()
        {
            ConvertToGray();
            List<int> vertical = GetVerticalSpilterLine(this.bmp);
            List<List<double>> resutl = new List<List<double>>();
            if (vertical.Count != 8) return resutl;
            int i, j;
            j = 0;
            for (i = 0; i < 8; i++)
            {
                if (i % 2 > 0)
                {
                    Bitmap temp = null;
                    Rectangle rec;
                    try
                    {
                        //垂直分割 4-1=2
                        rec = new Rectangle(vertical[i - 1] + 1, 0, vertical[i] - vertical[i - 1] - 1, 20);
                        temp = (Bitmap)bmp.Clone(rec, bmp.PixelFormat);

                        List<int> level = GetLevelSpilterLine(temp);

                        int begin = level[0];
                        int end;
                        if (begin > 10)//表示數(shù)字的下邊沒有空白線
                            end = begin;
                        else
                        {
                            if (level.Count == 2)
                                end = level[1] - begin;
                            else
                                end = 20 - begin;
                        }

                        rec = new Rectangle(0, begin + 1, temp.Width, end - 1);
                        temp = (Bitmap)temp.Clone(rec, temp.PixelFormat);
                        
                        temp = Normalized(temp);
                        resutl.Add(GetPixelCollection(temp));
                        
                        ++j;
                    }
                    finally
                    {
                        temp.Dispose();
                    }
                }
            }
            return resutl;
        }
        
        /// <summary>
        /// 獲得灰度圖像素集合
        /// 0表示白色1表示黑色
        /// </summary>
        /// <param name="bmp">待處理的圖片</param>
        /// <returns>像素集合</returns>
        List<double> GetPixelCollection(Bitmap temp)
        {
            List<double> result = new List<double>();

            for (int h = 0; h < temp.Height; h++)
            {
                for (int w = 0; w < temp.Width; w++)
                {
                    Color c = temp.GetPixel(w, h);
                    int r = Convert.ToInt32(c.R);
                    if (r == 0)
                        result.Add(1);
                    else
                        result.Add(0);
                }
            }
            return result;
        }
        /// <summary>
        /// 把圖片的寬高統(tǒng)一,,行話叫歸一
        /// </summary>
        /// <param name="bitmap">需要處理的圖片</param>
        Bitmap Normalized(Bitmap bitmap)
        {
            Bitmap temp = new Bitmap(ww, hh);
            Graphics myGraphics = Graphics.FromImage(temp);
            //源圖像中要裁切的區(qū)域
            Rectangle sourceRectangle = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
            ////縮小后要繪制的區(qū)域
            Rectangle destRectangle = new Rectangle(0, 0, ww, hh);
            myGraphics.Clear(Color.White);
            ////繪制縮小的圖像
            myGraphics.DrawImage(bitmap, destRectangle, sourceRectangle, GraphicsUnit.Pixel);

            myGraphics.Dispose();
            return temp;
        }

     
        /// <summary>
        /// 獲得垂直分割線
        /// 255是白,找到全是白色的線,用在分割圖片
        /// </summary>
        /// <param name="bmp"></param>
        /// <returns></returns>
        List<int> GetVerticalSpilterLine(Bitmap bmp)
        {
            List<int> hh = new List<int>();
            List<int> hhh = new List<int>();
            bool white;
            int w, h, a, b, r, i;
            for (w = 0; w < bmp.Width; w++)
            {
                white = true;
                for (h = 0; h < bmp.Height; h++)
                {
                    Color c = bmp.GetPixel(w, h);
                    r = Convert.ToInt32(c.R);
                    if (r == 0)
                    {
                        white = false;
                        break;
                    }
                }
                if (white)
                    hh.Add(w);
            }

            for (i = 1; i < hh.Count; i++)
            {
                a = hh[i];
                b = hh[i - 1];
                if (a - b > 3)
                {
                    hhh.Add(b);
                    hhh.Add(a);
                }
            }
            return hhh;

        }

        /// <summary>
        /// 獲取水平分割線
        /// 255是白,找到全是白色的線,用在分割圖片
        /// </summary>
        /// <param name="bmp"></param>
        /// <returns></returns>
        List<int> GetLevelSpilterLine(Bitmap bmp)
        {

            List<int> hh = new List<int>();
            for (int h = 0; h < bmp.Height; h++)
            {
                bool white = true;
                for (int w = 0; w < bmp.Width; w++)
                {
                    Color c = bmp.GetPixel(w, h);
                    int r = Convert.ToInt32(c.R);
                    if (r == 0)
                    {
                        white = false;
                        break;
                    }
                }
                if (white)
                { //水平分割,找到Y(jié)軸的下標(biāo)最大值
                    if (h < 10)
                    {
                        if (hh.Count == 0)
                            hh.Add(h);
                        else
                            hh[0] = h;
                    }
                    else
                    {//水平分割,找到Y(jié)軸的上標(biāo)最小值
                        if (hh.Count == 0)
                            hh.Add(h);
                        else
                            hh.Add(h);
                        break;
                    }
                }
            }
            return hh;
        }

        /// <summary>
        /// 轉(zhuǎn)換成灰度圖,,行話叫二值化
        /// </summary>
        /// <param name="bp"></param>
        /// <returns></returns>
        void ConvertToGray()
        {
            for (int w = 0; w < bmp.Width; w++)
            {
                for (int h = 0; h < bmp.Height; h++)
                {
                    Color c = bmp.GetPixel(w, h);
                    int r = Convert.ToInt32(c.R);
                    if (r > 160)
                        bmp.SetPixel(w, h, Color.Black);
                    else
                        bmp.SetPixel(w, h, Color.White);
                }
            }
        }

        

    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费电影在线| 色哟哟精品一区| 高清不卡一二三区| 黑人精品欧美一区二区蜜桃| 久久成人综合网| 国产高清一区日本| 久久99国产精品久久99| 麻豆91在线播放免费| 免费黄网站欧美| 久草精品在线观看| 国产69精品久久777的优势| 成人免费毛片a| 91小视频在线| 欧美日韩国产综合一区二区三区| 3atv在线一区二区三区| 欧美群妇大交群中文字幕| 欧美一区二区三区视频在线观看| 精品国产一区久久| 亚洲欧洲av另类| av中文一区二区三区| 久久国产精品99久久久久久老狼| 国产毛片精品视频| 成人性生交大片免费看在线播放| 91麻豆精品秘密| 这里只有精品99re| 亚洲欧美激情小说另类| 国产精品久久久久久久第一福利| 国产精品三级久久久久三级| 亚洲精品福利视频网站| 日韩精品一级二级| 国产99精品国产| 日本丶国产丶欧美色综合| 91麻豆精品国产91久久久久久久久 | 一区二区三区视频在线看| 日本午夜一本久久久综合| 国产精品一区2区| 91福利国产精品| 精品伦理精品一区| 亚洲自拍偷拍九九九| 蜜桃视频第一区免费观看| 97se亚洲国产综合自在线| 精品国产乱码久久| 亚洲h在线观看| 色综合天天综合| 久久久国产精品午夜一区ai换脸 | 欧美亚洲日本国产| 亚洲国产电影在线观看| 热久久国产精品| 在线免费不卡视频| 亚洲天堂中文字幕| 国产一区二三区好的| 欧美乱熟臀69xxxxxx| 亚洲欧洲精品一区二区精品久久久| 老司机免费视频一区二区| 欧美在线观看一区| 亚洲欧洲综合另类| 国产一区二区在线视频| 日韩久久久久久| 秋霞成人午夜伦在线观看| 99精品视频在线观看| 国产亚洲综合在线| 国产一区视频导航| 久久在线免费观看| 久久99国产精品免费网站| 日韩一二在线观看| 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩一区三区| 午夜在线成人av| 欧美日韩高清不卡| 亚洲精品乱码久久久久久黑人| 不卡一区二区中文字幕| 国产精品久久久久久久午夜片 | 专区另类欧美日韩| av资源网一区| 亚洲日本va午夜在线电影| 成人福利在线看| 自拍偷拍国产精品| 91久久奴性调教| 亚洲福利国产精品| 91精品国产一区二区三区香蕉| 日韩中文字幕一区二区三区| 欧美一区二区三区四区视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 老司机免费视频一区二区三区| 欧美一级高清大全免费观看| 久久国产综合精品| 久久亚洲综合av| 成人免费av网站| 亚洲欧洲日产国产综合网| 91浏览器打开| 亚洲成人自拍网| 91精品免费观看| 极品少妇xxxx精品少妇| 国产视频一区二区在线| 99re8在线精品视频免费播放| 一区二区免费视频| 亚洲精品videosex极品| 91免费视频观看| 亚洲综合色在线| 欧美一区午夜精品| 国产一区二区在线影院| 国产精品黄色在线观看| 首页国产欧美久久| 久久久久久久久久久电影| 国产亚洲女人久久久久毛片| 理论电影国产精品| 久久精品夜夜夜夜久久| www.欧美亚洲| 丝袜美腿一区二区三区| 精品少妇一区二区三区| 成人精品一区二区三区四区 | 91视频你懂的| 亚洲超丰满肉感bbw| 欧美sm极限捆绑bd| 床上的激情91.| 亚洲成人av资源| 久久亚洲一级片| 91蜜桃传媒精品久久久一区二区| 亚洲成人自拍偷拍| 久久久亚洲欧洲日产国码αv| 色婷婷国产精品| 蜜臀91精品一区二区三区 | 成人国产电影网| 亚洲成人一二三| 精品国产一区二区三区忘忧草| 国产xxx精品视频大全| 国产精品每日更新在线播放网址| 一本一道综合狠狠老| 日韩国产欧美在线播放| 亚洲精品一区二区在线观看| 91久久精品日日躁夜夜躁欧美| 九九**精品视频免费播放| 国产精品精品国产色婷婷| 欧美高清视频一二三区| 成人激情免费电影网址| 麻豆91在线观看| 亚洲主播在线播放| 亚洲国产高清在线| 91麻豆精品国产91久久久资源速度| 成人高清视频免费观看| 久久99精品久久久| 亚洲成人免费影院| 综合久久国产九一剧情麻豆| 精品国产露脸精彩对白| 欧美日韩精品系列| 99久久综合国产精品| 极品少妇xxxx偷拍精品少妇| 亚洲国产色一区| 亚洲天堂免费在线观看视频| 精品电影一区二区| 欧美一区二区三区喷汁尤物| 欧美视频在线一区| 成人手机电影网| 激情深爱一区二区| 日本午夜精品一区二区三区电影| 亚洲免费观看高清完整版在线观看 | 久久久不卡网国产精品二区| 欧美久久久影院| 91国偷自产一区二区开放时间 | 国产精品另类一区| 精品国精品国产尤物美女| 欧美日韩激情一区二区| 色哟哟一区二区| 99精品欧美一区二区三区小说| 国产精品911| 精品一区二区三区蜜桃| 日韩电影在线一区二区| 亚洲成a人在线观看| 一区二区在线看| 亚洲伦在线观看| 亚洲特黄一级片| 亚洲欧洲三级电影| 自拍偷拍国产亚洲| 中文字幕一区二区三区视频| 国产精品久久久久久久久免费丝袜| 国产日产欧美一区二区视频| 国产丝袜美腿一区二区三区| 国产视频一区在线播放| 国产亚洲欧美日韩日本| 久久精品视频一区二区三区| 久久久久久久免费视频了| 久久久精品影视| 欧美激情综合网| 国产精品久久网站| 中文欧美字幕免费| 国产精品无人区| 国产欧美日韩三级| 日本一区二区三区dvd视频在线| 精品成人在线观看| 久久久无码精品亚洲日韩按摩| 久久精品一区二区三区不卡| 亚洲精品国产精品乱码不99| 亚洲日本电影在线| 亚洲精品视频免费看| 夜夜嗨av一区二区三区四季av| 亚洲综合色婷婷| 婷婷久久综合九色综合绿巨人| 日本午夜一区二区| 国产在线一区观看| 成人午夜又粗又硬又大|