如何控制扫描仪?  扫描?图片保存?图像反转?扫描色彩?扫描边界?多页扫描? (不用自带的ImgScan等四个)
 我已看了不少贴子,也下载了delphitwain、ImageEn2控件,可还是不会用,帮助文档是西文的?有应用的原码吗?能解决的就送分了!!!

解决方案 »

  1.   

    procedure TfrmScan.btnBeginScanClick(Sender: TObject);
    var
      tmpJPEG:TJPEGImage;
      tmpIniFile: TIniFile;
    begin
     {弹出保存文件窗体}
      If not Assigned(frmSaveDlg) Then
          frmSaveDlg:=TFrmSaveDlg.Create(Application);
      If frmSaveDlg.ShowModal=mrCancel Then Exit; {开始扫描各步骤}
      Application.ProcessMessages;
      ImgScan1.ScanTo:=1;
      ImgScan1.DestImageControl:='ImgEdit1';
      Try
        If Not ImgScan1.ScannerAvailable then
            ImgScan1.OpenScanner;
      Except
        MessageBox(Handle,'扫描仪没准备好','警告',MB_OK+MB_ICONWARNING);
        Exit;
      End;
      Try
       //开始扫描
        ImgScan1.StartScan;
        ImgScan1.CloseScanner;    If FileExists(ImgScan1.Image) Then Begin
         //显示图像
          Image1.Picture.LoadFromFile(ImgScan1.Image);
         //删除过渡文件
          DeleteFile(ImgScan1.Image);
         //转换成JPG格式
          tmpJPEG:=TJPEGImage.Create;
          tmpJPEG.Assign(Image1.Picture.Bitmap);
         {设置压缩率}
          tmpIniFile:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'..\Setup.ini');
          tmpJPEG.CompressionQuality:=tmpIniFile.ReadInteger('扫描图片','压缩率',65);
          tmpIniFile.Free;
         //保存成JPG文件
          tmpJPEG.SaveToFile(Copy(ImgScan1.Image,1,Length(ImgScan1.Image)-4)+'.jpg');
        End;
      Finally
      End;
    End;//选择扫描仪
    procedure TfrmScan.btnSelBtnClick(Sender: TObject);
    begin
      Application.ProcessMessages;
      ImgScan1.ShowSelectScanner;
    end;//显示选中图片
    procedure TfrmScan.ShellListView1Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    begin
      If Not Assigned(ShellListView1.Selected) Then Exit;
      Try
        Image1.Picture.LoadFromFile(ShellListView1.Folders[ShellListView1.Selected.index].PathName);
      Except  End;
    end;//放大图像
    procedure TfrmScan.Image1Click(Sender: TObject);
    begin
      If Not Assigned(Image1.Picture.Graphic) Then Begin
        MessageBox(Handle,'无图像显示,请选择受理编号!','注意',MB_OK+MB_ICONWARNING);
        Exit;
      End;
      If Not Assigned(frmZoomOut) Then
          frmZoomOut:=TFrmZoomOut.Create(Self);
      frmZoomOut.Image1.Picture.Bitmap.Assign(Self.Image1.Picture.Graphic);
      frmZoomOut.ShowModal;
    end;  
      

  2.   

    上面是使用COM实现扫描功能,首先点菜单 Project|Import Type library 然后引入Kodak Image Scan Control。
      

  3.   

    to :ksaiy(消失在人海-喜欢昆明的花) 
      
      谢了!我先按你的办法试一下!
      

  4.   

    我这里有个ImageEn的例子,你可以看看,应该是很容易理解的
    http://qr51888.51.net/imageen.rar
      

  5.   

    其实ImageEn自己包括DEMO了。下载下来以后直接就可以用了http://www.delphibox.com/article.asp?articleid=1058
      

  6.   

    If not Assigned(frmSaveDlg) Then
          frmSaveDlg:=TFrmSaveDlg.Create(Application);
      If frmSaveDlg.ShowModal=mrCancel Then Exit; {开始扫描各步骤}
      Application.ProcessMessages;
      ImgScan1.ScanTo:=1;
      ImgScan1.DestImageControl:='ImgEdit1';报错
    "文件名不存在"