溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

C#實(shí)現(xiàn)截取驗(yàn)證碼圖片

發(fā)布時(shí)間:2020-10-20 18:26:10 來(lái)源:腳本之家 閱讀:165 作者:老狗子 欄目:編程語(yǔ)言

本文實(shí)例為大家分享了C#截取驗(yàn)證碼圖片的具體代碼,供大家參考,具體內(nèi)容如下

使用Graphics類(lèi)中的DrawImage方法,這個(gè)方法有30種重載方式,這里只介紹一種,也是我認(rèn)為最直觀(guān)的一種,代碼如下:

using System.Drawing;

namespace kq.Utils
{
 public static class CommonTools
 {

  public static Bitmap getVerifyCode(Bitmap srcBmp, Rectangle rectangle)
  {
   //初始化一個(gè)bmp對(duì)象,90代表圖片的寬度,37代表高度
   Bitmap bmp = new Bitmap(90, 37);
   Graphics g = Graphics.FromImage(bmp);
   g.DrawImage(srcBmp, 0, 0, rectangle, GraphicsUnit.Pixel);
   return bmp;
  }
 }
}

其中g(shù).DrawImage方法中第一個(gè)參數(shù)代表被截取的原圖,第二第三個(gè)參數(shù)(0,0)代表在bmp中畫(huà)的起點(diǎn)xy坐標(biāo),第四個(gè)參數(shù)rectangle代表從srcBmp中截取的區(qū)域,最后一個(gè)參數(shù)GraphicsUnit.Pixel表示以上代表距離以及區(qū)域的參數(shù)的單位,Pixel代表像素。

以下是使用方式:

using kq.Utils;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System.Drawing;

namespace kq
{
 class Program
 {
  static void Main(string[] args)
  {
   try
   {
    string screenImg = @"d:\screenImg.png";

    Bitmap fromBmp = new Bitmap(screenImg);
    Rectangle section1 = new Rectangle(936, 523, 90, 37);

    Bitmap bmp = CommonTools.getVerifyCode(fromBmp, section1);

    bmp.Save(@"d:\驗(yàn)證碼.bmp");
   }
   catch (System.Exception e)
   {
    System.Console.WriteLine(e.Message);
   }

  }
 }
}

假設(shè)我們要截取一張圖片中的驗(yàn)證碼部分,代碼中的(936,523)代表原圖中驗(yàn)證碼左上角的坐標(biāo),(90,37)分別表示驗(yàn)證碼的長(zhǎng)和高,以上單位都是像素,如下圖:

C#實(shí)現(xiàn)截取驗(yàn)證碼圖片

最后截取出來(lái)的結(jié)果如下圖:

C#實(shí)現(xiàn)截取驗(yàn)證碼圖片

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI