Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сканировать документ на сканере [D7]


ave ©   (2006-02-13 16:01:00) 

Как можно отсканировать документ на сканере и получить его изображение из программы.


Yozch1   (2006-02-13 21:57:00) [1]

uses
...MultiTwain...

procedure TForm1.SelectImageSource(Sender: TObject);
begin
 istochnik := TWAIN_SelectImageSource(0);
end;

procedure TForm1.scan(Sender: TObject);
var
 jpg               : TJpegImage;
 mysizefile        : Longint;
 f                 : file of Byte;
 //    PInfo: PBitMapInfoHeader;

begin

 if istochnik = 0 then
   begin
     istochnik := TWAIN_SelectImageSource(0);
     if (istochnik = 0) then
       exit;
   end;

 hdib := TWAIN_AcquireNative(0, 0);

 n := TWAIN_GetNumDibs;

 if n >= 1 then
   begin

     TestDib := TWAIN_GetDib(0);
     Image1.Picture.Graphic := nil;
     Image1.Width := TWAIN_DibWidth(hDib);
     Image1.Height := TWAIN_DibHeight(hDib);

     try
       CopyDibIntoImage(TestDib, Image1);

     except
       {Обрабатываем наиболее вероятную ошибку связанную с не хваткой ресурсов
          для загрузки изображения}
       on EOutOFResources do
         MessageDlg('TBitMap: Нет ресурсов для загрузки изображения!',
           mtError, [mbOk], 0);
     end;

     TWAIN_FreeNative(TestDib);
     TestDib := 0;
   end;
 if n = 2 then
   begin
     TestDib := TWAIN_GetDib(1);
     CopyDibIntoImage(TestDib, Image1);
     TWAIN_FreeNative(TestDib);
     TestDib := 0;
   end;

 jpg := TJpegImage.Create;
 jpg.Assign(Image1.Picture.Graphic);
 jpg.SaveToFile(
   chAppDataPath + 'images\' + RulezFileName(label12.Caption)
   +
   '.jpg'
   );
 jpg.Free;

 // vrazmer(ExtractFilePath(ParamStr(0))+ 'images\'+label12.Caption+'.jpg');

 AssignFile(f, chAppDataPath + 'images\' +
   RulezFileName(label12.Caption) + '.jpg');
 Reset(f);
 mySizeFile := filesize(f);
 StatusBar2.Panels[1].Text := '..\images\' + RulezFileName(label12.Caption) +
   '.jpg';
 StatusBar2.Panels[2].Text := intToStr(mySizeFile) + ' bytes';
 CloseFile(f);
 Label9.caption := '1';

end;


Maverick   (2006-02-13 20:56:00) [2]

поищи так же ImageEn, когда то с момощью этой компоненты сканил


Джо   (2006-02-13 16:15:00) [3]

Ищи модуль twain.pas.


Наверх

Титульная страница Поиск, карта сайта Написать письмо