-
Здравствуйте У меня такая проблема.
Ни как не могу найти способ работы через TWAIN со сканерами у которых
автоматическая подача ...
Если кто сталкивался, подскажите как это реализовать.
TWAIN_AcquireNative(hwnd: HWND; pixmask: Integer) почему то ни чего не возвращает. -
Хотелось бы простенький примерчик с использованием функции
"TWAIN_RegisterCallback" -
Спасибо сам разобрался...
кому интересно
uses MultiTWAIN;
...
procedure TForm1.ScanImage;
var ImgTmp:TImage;
n:Integer;
TestDib:HBitmap;
i: integer;
Fnam: string;
begin
ImgTmp:=TImage.Create(Self);
TWAIN_SelectImageSource(Handle);
TWAIN_AcquireNative(Handle,0);
n:=TWAIN_GetNumDibs;
i:=0;
for i:=0 to n -1 do
begin
Image1.Picture:= nil;
TestDib:=TWAIN_GetDib(i);
CopyDibIntoImage(TestDib,ImgTmp);
TWAIN_FreeNative(TestDib);
Image1.Picture.Bitmap.Width:=ImgTmp.Width;
Image1.Picture.Bitmap.Height:=ImgTmp.Height;
Image1.Picture:=ImgTmp.Picture;
Fnam:=Edit1.Text+Edit2.Text+'_'+IntToStr(i)+'.jpeg';
SaveJPG(Fnam);
CheckListBox1.Items.Add(Fnam); // отношения к скану не имеет
CheckListBox1.Checked[CheckListBox1.Items.Count-1]:=True; // и это тоже
end;
end; -
процедура сохранения битовой карты как jpeguses gpeg;
...
procedure TForm1.SaveJPG(var fname: string);
var
OutStream: TFileStream;
JpegImage: TJpegImage;
begin
JpegImage := TJpegImage.Create;
JpegImage.Assign(Image1.Picture.Bitmap);
try
OutStream := TFileStream.Create(Fname ,fmOpenWrite or fmCreate);
JpegImage.SaveToStream(OutStream);
finally
OutStream.Free;
end;
JpegImage.Free;
end;