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

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

?? unit1.pas

?? 論壇發(fā)貼機(jī)Delphi源碼 帶驗(yàn)證碼識別源文件
?? PAS
字號:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, GIFImage, JPEG;
 type //字符特征碼
  RChar = record
    MyChar: char;
    MyCharInfo: array[0..9, 0..19] of byte;
  end;

type //字符特征文件
  RCharInfo = record
    charwidth: byte; //字符寬度
    charheight: byte; //字符高度
    X0: byte; //第一個(gè)字符開始x偏移
    TotalChars: byte; //圖象字符總數(shù)
    allcharinfo: array[0..35] of RChar;
  end;
type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    SaveDialog1: TSaveDialog;
    Edit2: TEdit;
    ListBox1: TListBox;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    function PIC2BMP(filename: string): TBITMAP;
    procedure InteCharInfo(Charwidth, X0: integer);
    procedure GetCharInfoFromALLImage;
    procedure GetCharInfoFromImage(MyCanvas: TCanvas; CharInfo: string);
    procedure ModiFyInfo(MyCanvas: TCanvas; MyChar: char; X0, CharWidth, CharHeight: integer);
    function GetStringFromImage(SBMP: TBITMAP): string;
    function CMPBMP(SBMP: TBITMAP; x0, m: integer): integer;

    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MyCharInfo: RCharInfo;

  Begincharwidth, Endcharwidth, charwidth, beginX0, endX0, X0: integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  if OpenDialog1.Execute then
  begin
    for i := 0 to OpenDialog1.Files.Count - 1 do
      begin
        image1.Picture.Bitmap := PIC2BMP(OpenDialog1.Files.Strings[i]);
        edit1.Text:=lowercase(copy(ExtractFileName(OpenDialog1.Files.Strings[i]),1,3));
        GetCharInfoFromAllImage;
      end;
  end;
end;
function TForm1.PIC2BMP(filename: string): TBITMAP;
var
  GIF: TGIFImage;
  jpg: TJPEGImage;
  BMP: TBITMAP;
  FileEx: string;
  i, j: integer;
begin
  FileEx := UpperCase(ExtractFileExt(filename));
  BMP := TBITMAP.Create;
  if FileEx = '.BMP' then
    BMP.LoadFromFile(filename)
  else if FileEx = '.GIF' then
  begin
    GIF := TGIFImage.Create;
    GIF.LoadFromFile(filename);
    BMP.Assign(GIF);
    GIF.Free;
  end
  else if (FileEx = '.JPG') or (FileEx = '.JPEG') then
  begin
    JPG := TJPEGImage.Create;
    JPG.LoadFromFile(filename);
    JPG.Grayscale := TRUE;
    BMP.Assign(JPG);
    JPG.Free;
  end;
  for i := 0 to BMP.Width - 1 do
    for j := 0 to BMP.Height - 1 do
    begin
      if BMP.Canvas.Pixels[i, j] > $7FFFFF then
        BMP.Canvas.Pixels[i, j] := clwhite
      else
        BMP.Canvas.Pixels[i, j] := clblack;
    end;
  result := BMP;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  InteCharInfo(9, 20);

  
    Begincharwidth := 9;
    Begincharwidth := round(Begincharwidth / 2);
    Endcharwidth := 2 * Begincharwidth;
    BeginX0 := 20;
    endX0 := MycharInfo.charwidth + 1;
end;
//根據(jù)不同情況初始化特征碼信息

procedure TForm1.InteCharInfo(Charwidth, X0: integer);
begin
  Fillchar(MycharInfo, sizeof(RcharInfo), 1);
  MycharInfo.TotalChars := length(edit1.text);
  MycharInfo.charwidth := charwidth;
  MycharInfo.charheight := image1.Picture.Bitmap.Height;
  MycharInfo.X0 := X0;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  P: file of RCharInfo;
begin
  if Opendialog1.Execute then
  begin
    Assignfile(P, Opendialog1.FileName);
    reset(P);
    read(p, MycharInfo);
    CloseFile(P);
  end;
end;


procedure TForm1.GetCharInfoFromALLImage;
begin
  GetCharInfoFromImage(image1.Picture.Bitmap.Canvas, edit1.text);
end;

procedure TForm1.GetCharInfoFromImage(MyCanvas: TCanvas; CharInfo: string);
var
  i: integer;
  x: integer;
begin
  for i := 1 to MycharInfo.TotalChars do
  begin
    x := MycharInfo.X0 + MycharInfo.charwidth * (i - 1);
    ModiFyInfo(MyCanvas, CharInfo[i], x, MycharInfo.charwidth, MycharInfo.charheight);
  end;
end;

//修正指定字符特征碼

procedure TForm1.ModiFyInfo(MyCanvas: TCanvas; MyChar: char; X0, CharWidth, CharHeight: integer);
var
  i, j,num_index: integer;
begin
  for i := 0 to CharWidth do
    for j := 0 to CharHeight do
      if MyCanvas.Pixels[X0 + i, j] > 0 then
      begin
        if ((ord(Mychar)>=48) and (ord(Mychar)<=57)) then
           num_index:= ord(Mychar)-48
        else
           num_index:= ord(Mychar)-87;
        MyCharInfo.allcharinfo[num_index].MyChar := Mychar;
        MyCharInfo.allcharinfo[num_index].MyCharInfo[i, j] := 0;
      end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Image1.Picture.Bitmap := PIC2BMP(OpenDialog1.FileName);
    edit2.Text := GetStringFromImage(Image1.Picture.Bitmap);
  end;
end;

function TForm1.GetStringFromImage(SBMP: TBITMAP): string;
var
  k, m: integer;
  x: integer;
begin
  result := '';
  for k := 0 to MycharInfo.TotalChars - 1 do
  begin
    x := MycharInfo.X0 + MyCharInfo.charwidth * k;
    for m := 35 downto 0 do
    begin
      if CMPBMP(SBMP, x, m) = 0 then
      begin
        result := result + MycharInfo.allcharinfo[m].MyChar;
        break;
      end;
      if m = 0 then
        result := result + '?';
    end;
  end;
end;
//比較圖片上X0開始的字符是否是指定字符M

function TForm1.CMPBMP(SBMP: TBITMAP; x0, m: integer): integer;
var
  i, j: integer;
begin
  result := 0;
  for i := 0 to MycharInfo.charwidth - 1 do
    for j := 0 to MycharInfo.charHeight - 1 do
      if (SBMP.Canvas.Pixels[x0 + i, j] > 0) and (MycharInfo.allcharinfo[m].MyCharInfo[i, j] = 1) then
        result := result + 1;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  P: file of RCharInfo;
begin
  if savedialog1.Execute then
  begin
    Assignfile(P, savedialog1.FileName);
    rewrite(P);
    write(p, MycharInfo);
    CloseFile(P);
  end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
 i,j:integer;
begin
listbox1.Clear;
 for i:=0 to 35 do
    listbox1.Items.Add(inttostr(i)+':'+MycharInfo.allcharinfo[i].MyChar);
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91成人在线精品| 99久久精品国产网站| 色狠狠桃花综合| 久久亚洲春色中文字幕久久久| 亚洲婷婷国产精品电影人久久| 日本美女一区二区| 一本到一区二区三区| 国产欧美精品在线观看| 亚洲成av人在线观看| 99精品在线观看视频| 精品国产精品网麻豆系列| 亚洲国产日韩一区二区| 97精品电影院| 国产蜜臀av在线一区二区三区| 奇米精品一区二区三区四区| 在线免费不卡视频| 国产精品伦一区二区三级视频| 国产在线播放一区三区四| 欧美一区午夜精品| 亚洲观看高清完整版在线观看| 成人黄色小视频在线观看| 久久综合精品国产一区二区三区| 日韩国产在线观看| 欧美日韩免费高清一区色橹橹| ●精品国产综合乱码久久久久| 国产精品白丝av| 精品电影一区二区| 精品一区二区三区久久久| 欧美一区二区三区四区高清| 亚洲成av人影院| 欧美日韩免费高清一区色橹橹| 一区二区三区国产| 色婷婷精品久久二区二区蜜臀av| ...中文天堂在线一区| www.欧美.com| 欧美国产一区二区| 国产成人自拍网| 久久精品一区蜜桃臀影院| 国产美女视频一区| 久久噜噜亚洲综合| 国产精品一区一区| 国产欧美综合在线观看第十页| 国产裸体歌舞团一区二区| 久久精品亚洲一区二区三区浴池 | 精品国产青草久久久久福利| 青草av.久久免费一区| 日韩一区二区免费高清| 日本不卡一区二区三区| 欧美一级夜夜爽| 激情六月婷婷久久| 久久久99精品久久| 东方aⅴ免费观看久久av| 欧美激情在线一区二区三区| 丁香桃色午夜亚洲一区二区三区| 国产午夜精品一区二区三区嫩草 | 国产综合久久久久久久久久久久| 精品女同一区二区| 国产成人综合视频| 亚洲欧洲99久久| 在线免费一区三区| 日韩成人免费电影| 91精品黄色片免费大全| 精品一区免费av| 亚洲国产精品t66y| 色噜噜偷拍精品综合在线| 视频一区视频二区在线观看| 欧美成人一区二区三区| 国产精品一区二区91| **性色生活片久久毛片| 欧美日韩精品一区二区三区蜜桃 | 国产一区二区三区高清播放| 欧美激情一区二区三区| 99久久99久久精品国产片果冻| 亚洲欧美日韩国产综合| 欧美日韩国产精品自在自线| 九九热在线视频观看这里只有精品| 久久精品一区二区三区四区| 色哟哟欧美精品| 青青草一区二区三区| 国产日韩欧美一区二区三区乱码| 91欧美激情一区二区三区成人| 亚洲成人黄色小说| 久久亚洲精华国产精华液 | 捆绑变态av一区二区三区| 精品少妇一区二区三区视频免付费 | 亚洲精品福利视频网站| 欧美群妇大交群中文字幕| 国产黑丝在线一区二区三区| 亚洲一区二区三区中文字幕| 欧美r级电影在线观看| 91丝袜美腿高跟国产极品老师 | 亚洲国产精品成人综合色在线婷婷 | 国产酒店精品激情| 亚洲欧洲中文日韩久久av乱码| 欧美一区二区三区小说| 成人高清免费在线播放| 亚洲1区2区3区4区| 国产亚洲污的网站| 欧美精品1区2区3区| 国产成人av在线影院| 婷婷丁香久久五月婷婷| 欧美激情中文字幕一区二区| 69久久99精品久久久久婷婷 | 激情五月激情综合网| 亚洲裸体xxx| ww久久中文字幕| 在线观看免费亚洲| 国产成人免费在线| 免费成人美女在线观看| 亚洲日本免费电影| 久久久综合九色合综国产精品| 欧美日韩一区高清| 9久草视频在线视频精品| 九色|91porny| 午夜精品久久久| 亚洲天堂免费在线观看视频| 久久午夜羞羞影院免费观看| 欧美三级午夜理伦三级中视频| 成人久久久精品乱码一区二区三区| 日韩高清一区二区| 亚洲激情第一区| 亚洲欧洲在线观看av| 久久九九影视网| 日韩免费观看高清完整版| 欧美视频一区二区三区四区| 成人少妇影院yyyy| 国产乱码字幕精品高清av| 日本最新不卡在线| 亚洲五月六月丁香激情| 国产精品色噜噜| 久久久久久久久久久电影| 欧美日韩黄色一区二区| 色综合久久久久久久久久久| 国产suv一区二区三区88区| 蜜臀av一区二区| 五月天一区二区| 亚洲一区精品在线| 亚洲精品免费播放| 国产精品久久久久婷婷二区次| 久久亚洲欧美国产精品乐播| 精品国产亚洲一区二区三区在线观看| 欧美日韩在线播放三区四区| 一本色道综合亚洲| 97精品久久久午夜一区二区三区 | 免费在线视频一区| 午夜精品久久久久久久蜜桃app| 亚洲美女区一区| 亚洲黄色av一区| 亚洲欧美日韩国产手机在线| 亚洲视频一区二区在线| 国产精品免费视频观看| 国产精品毛片无遮挡高清| 国产丝袜在线精品| 国产欧美日韩精品在线| 国产精品丝袜在线| 国产精品色婷婷| 最近日韩中文字幕| 亚洲另类在线视频| 一区二区三区在线观看欧美| 亚洲在线中文字幕| 亚洲成年人网站在线观看| 亚洲高清不卡在线| 天天综合色天天综合色h| 亚洲大片在线观看| 视频一区二区三区在线| 日本va欧美va精品| 美国精品在线观看| 久久狠狠亚洲综合| 国产精品综合网| 成人毛片老司机大片| 91一区二区三区在线播放| 欧洲一区二区三区在线| 欧美日韩国产一区| 欧美一级黄色录像| 亚洲精品一区二区三区四区高清| 久久综合久久鬼色| 国产精品久久久久永久免费观看 | 国产一区久久久| 国产99久久久国产精品潘金| 懂色av中文一区二区三区 | 久久99国产精品成人| 国产一区二区三区精品欧美日韩一区二区三区| 国产一区在线观看麻豆| 成人理论电影网| 欧美亚洲愉拍一区二区| 337p亚洲精品色噜噜狠狠| 欧美精品一区二区久久婷婷| 国产精品视频九色porn| 亚洲一区二区三区激情| 美女任你摸久久| 福利91精品一区二区三区| 色哟哟日韩精品| 日韩三级免费观看| 国产精品久久毛片av大全日韩| 夜夜嗨av一区二区三区| 免费黄网站欧美| 成人免费福利片| 欧美日韩中文另类| 久久综合狠狠综合| 亚洲精品高清在线|