?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, SysUtils, Classes, Graphics, Controls, Forms,
StdCtrls, IdHTTP, ExtCtrls, GifImage, Jpeg, PngImage,
TabNotBk, ComCtrls, Dialogs;
type
TForm1 = class(TForm)
Image1: TImage;
Label2: TLabel;
Button1: TButton;
result: TEdit;
weburl: TEdit;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TBArray = Array of byte;
TABArray = Array of TBArray;
var
Form1: TForm1;
stm: TMemoryStream;
libRds: Array of byte;
implementation
function loadLib(fn,kind,libFn,libName:pchar):Integer;stdcall;external 'ndocr.dll';
procedure freeLib(kind:pchar);stdcall;external 'ndocr.dll';
function getCodeFromStream(var stm:TMemoryStream;colorDepth,kind,para:pchar):pchar;stdcall;external 'ndocr.dll';
function getCodeFromFile(fn,colorDepth,kind,para:pchar):pchar;stdcall;external 'ndocr.dll';
{$R *.dfm}
function loadPic(stm:TMemoryStream):TBitMap;
var
bmp: TBitMap;
gif: TGIFImage;
jpg: TJPEGImage;
png: TPNGobject;
buf: Array[0..3] of byte;
begin
stm.Position := 0;
stm.ReadBuffer(buf[0],4);
stm.Position := 0;
bmp := TBITMAP.Create();
if (buf[0]=66) and (buf[1]=77) then begin
bmp.LoadFromStream(stm)
end else if (buf[0]=71) and (buf[1]=73) and (buf[2]=70) then begin
gif := TGifImage.Create();
gif.LoadFromStream(stm);
bmp.Assign(gif);
gif.Free()
end else if (buf[1]=80) and (buf[2]=78) and (buf[3]=71) then begin
png := TPNGobject.Create();
png.LoadFromStream(stm);
bmp.Assign(png);
png.Free();
end else begin
jpg := TJpegImage.Create();
jpg.LoadFromStream(stm);
bmp.Assign(jpg);
jpg.Free();
end;
result := bmp;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
idhttp: TIDHttp;
bmp: TBitMap;
begin
stm.Clear();
idhttp := TIDHttp.Create(form1);
try
idhttp.Get(weburl.Text,stm);
except
stm.LoadFromFile(weburl.Text);
end;
idhttp.free();
form1.result.Text := getCodeFromStream(stm,'','normal','20');
bmp := loadPic(stm);
form1.Image1.Canvas.Brush.Color := clBlack;
form1.Image1.Canvas.FillRect(Rect(0,0,165,63));
form1.Image1.Canvas.Draw(0,0,bmp);
bmp.Free();
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
loadLib('ndocr1.dll','normal','20.lib','');
stm := TMemoryStream.Create();
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
freeLib('');
stm.Free();
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
form1.Close();
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -