我正在写一个档案系统,需要用到扫描的图片,我用摸板扫描,现在对扫描仪的控制,以及如何将单张图片存入数据库,我都解决了,但是我要求多页扫描,所以用摸板扫描,但取不到图片的地址。代码如下:
扫描:
procedure TForm1.Button1Click(Sender: TObject);
begin
ImgScan1.ScanTo:=3;
ImgScan1.DestImageControl :='ImgEdit1';
ImgScan1.Image:='D:\Img\pic';
ImgScan1.OpenScanner;
ImgScan1.StartScan;
ImgScan1.CloseScanner;
end;入库:
SqlStr := 'Insert Into DictPicture (PicCode,PicName,PicImage,FileConnect) Values(:Code,:Name,:Image,:Connect)';
with ADOInsertQuery do
begin
Close;
Sql.Clear;
Sql.Add(SqlStr);
Parameters.ParamByName('Code').Value := Code;
Parameters.ParamByName('Name').Value := ImgPath;
ParameTers.ParamByName('Image').LoadFromFile(ImgEdit1.Image, ftBlob);
Parameters.ParamByName('Connect').Value := ConnectFlag;
ExecSql;
end;但是ImgEdit1.Image取出来的值为'D:\Img\pic*',而不是D:\Img\pic00001.bmp的具体的值。请教如何解决,定有重谢
扫描:
procedure TForm1.Button1Click(Sender: TObject);
begin
ImgScan1.ScanTo:=3;
ImgScan1.DestImageControl :='ImgEdit1';
ImgScan1.Image:='D:\Img\pic';
ImgScan1.OpenScanner;
ImgScan1.StartScan;
ImgScan1.CloseScanner;
end;入库:
SqlStr := 'Insert Into DictPicture (PicCode,PicName,PicImage,FileConnect) Values(:Code,:Name,:Image,:Connect)';
with ADOInsertQuery do
begin
Close;
Sql.Clear;
Sql.Add(SqlStr);
Parameters.ParamByName('Code').Value := Code;
Parameters.ParamByName('Name').Value := ImgPath;
ParameTers.ParamByName('Image').LoadFromFile(ImgEdit1.Image, ftBlob);
Parameters.ParamByName('Connect').Value := ConnectFlag;
ExecSql;
end;但是ImgEdit1.Image取出来的值为'D:\Img\pic*',而不是D:\Img\pic00001.bmp的具体的值。请教如何解决,定有重谢
1。你把一个DBImage绑定到图片字段上。然后用。
procedure TForm1.Button1Click(Sender: TObject);
var
B: TBitmap;
begin
if ADODataSet1.Eof then
begin
showmessage('请选择一个员工!');
exit;
end;
if OpenPictureDialog1.Execute then
begin
ADODataSet1.Edit ;
B := TBitmap.Create;
try
B.LoadFromFile(OpenPictureDialog1.FileName);
DBImage1.Picture.Assign(B);
finally
B.Free;
end;
ADODataSet1.post;
end;end;
2。第二种方法是读取剪贴板中的图片信息存入数据库
procedure TForm1.Button2Click(Sender: TObject);
var
C: TClipboard;
i,j:integer;
strTemp:string;
blnFind:boolean;
begin
C := TClipboard.Create;
try
if not OpenDialog1.Execute then exit;
ADODataSet1.Edit
image1.Picture.LoadFromFile(OpenDialog1.FileName);
c.Assign(Image1.Picture.Graphic );
DBImage1.PasteFromClipboard;
ADODataSet1.Post ;
finally
C.Free;
end;
end;