请问我怎么编程才能用控制描仪将照片扫描并存储到数据库中去呢? (50分)

  • 主题发起人 主题发起人 kelphi
  • 开始时间 开始时间
K

kelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,谢谢!
 
磁卡扫描器?和QUICKREP一样???

我看和条码扫描器差不多,但不知和quickrep有什么关系
 
我的意思是说:操作磁卡扫描器应该如何操作呢?
比如打印机可以用quickrep控件,而磁卡扫描器应该用怎样的控件对它进行读写呢?
 
磁卡扫描器一般都有自带的SDK,如果是通过串口通讯而又没有SDK的,自已截获数据样本分析啦。
 
我也想知道怎么做到,这在人事管理系统中很有用处,
在人事系统中最好是直接取图片自SCANER到系统中,
用户自己去编辑大小,很方便。
 
有没有更详细的说明呢?
 
一般而言,扫描的结果并不很理想,往往要人工调整图片,所以扫描后直接进入数据库
的方法我不太赞同,应该让用户去干预。
 
请教:暂不考虑理想不理想,要怎样实现直接进入数据库呢?
 
使用驱动程序带的dll文件或activex控件,控制扫描仪工作.
 
我用过的磁卡设备一般有两种,一种键盘口,一种串口,键盘口的就是住址键盘,串口的有
驱动或内存驻留程序,也也是存入键盘缓冲的,你用什么样的扫描设备,去看看说明,接口一般
不会有问题的,不必担心
 
好像WIN98有自带控制扫描仪的ACTIVEX控件。
 
twain32
直接引用柯达的,如果不能满足你的要求,去深度历险下个直接利用twain32控制的东西。
 
先存成临时文件,然后在存入数据库中,有可能会好些。


 
建议可以现存成文件,将路径直接放到数据库里,存取方便,对数据库的资源消耗不会太大。
 
//保存
procedure TForm1.ImageIntoDBBitBtnClick(Sender: TObject);
begin
try
with Query1 do
begin
close;
sql.clear;
sql.add('insert into img (imga) values(:imag)');
end;
try
if FileName<>'' then
ParamByName('Img').LoadfromFile(FileName,ftGraphic)
else
ParamByName('Img') .asBlob:='';
Query1.ExecSQL;
except
ShowMessage('error!');
exit;
end;
except
end;
end;

//读取
procedure TForm1.ImageFromDBBitBtnClick(Sender: TObject);
var
m_jpegstream:tmemorystream;
begin
with Query1 do
begin
close;
sql.clear;
sql.Add('select imga from img');
try
Open;
except
exit;
end;
end;
if (Query1.FieldByName('imga') as tblobfield).asstring='' then
begin
exit;
end
else
begin
try
try
m_jpegStream:=TMemoryStream.Create;
(Query1.fieldbyname('imga') as TBlobField).SaveToStream(m_JpegStream);
m_JpegStream.Position:=0;
try
image2.Picture.Graphic:=nil;
image2.Picture.Graphic:=TJpegImage.Create;
image2.Picture.Graphic.LoadFromStream(m_JpegStream);
except
Image2.Picture.Bitmap.LoadFromStream(m_JpegStream);
end;
except
end;
finally
m_JpegStream.Free;
Query1.Close;
Query1.UnPrepare;
end;
end;
end;

//BMP转换为JPG
procedure TStuXXSLForm.LoadImageBitBtnClick(Sender: TObject);
var
MyJpeg:TJpegImage;
begin
inherited;
if OpenPictureDialog1.Execute then
begin
FileName:=OpenPictureDialog1.FileName;
Image1.Picture.LoadFromFile(FileName);
if ExtractFileExt(FileName)='.Bmp' then
begin
MyJpeg:= TJpegImage.Create;
MyJpeg.Assign(Image1.Picture.Bitmap);
FileName:='Photo.Jpg';
MyJpeg.SaveToFile(FileName);
MyJpeg.Free;
end;
end;
end;
 
谢谢大家,我找到方法了!
 
谢谢大家,我找到方法了!
 
怎么做到的?
 
后退
顶部