Autor Beitrag
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2274
Erhaltene Danke: 419

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Do 03.05.18 11:45 
Hallo Forum

Problemstellung:
Von einer Anwendung aus möchte ich einen Scan-Vorgang durchführen und das Ergebnis direkt abspeichern, nicht viel anders als mit der Windows-Anwendung Paint.
Welche Schnittstelle/n verwendet Paint dafür?
Es sollte, wenn möglich, ohne externe Installationen möglich sein, ein Dokument auf Windows-Rechnern (ab Vista) zu scannen und direkt abzuspeichern.

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 3978
Erhaltene Danke: 813

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Do 03.05.18 12:44 
Dies wird TWAIN oder das neuere Windows Image Acquisition (WIA) sein.

Für diesen Beitrag haben gedankt: Frühlingsrolle
Frühlingsrolle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2274
Erhaltene Danke: 419

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Do 03.05.18 13:18 
Hab vielen Dank, Th69!
Ich entscheide mich für WIA(2.0). Sogar Bespiele (in C++) sind vorzufinden.

Das Thema hat sich erledigt !!!


Nachtrag

Importiert man den bereits vorhandenen COM Verweis / Typbibliothek (Microsoft Windows Image Acquisition Library v2.0), geht das noch viel einfacher:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
using WIA;

// FormatID 
const string wiaFormatBMP  = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"
const string wiaFormatPNG  = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}"
const string wiaFormatGIF  = "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}"
const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
const string wiaFormatTIFF = "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}"
 
private bool ScanAndSaveFile(string FileName, string FormatID) 

    ICommonDialog dlg = new WIA.CommonDialog();
    IImageFile img = dlg.ShowAcquireImage(WiaDeviceType.ScannerDeviceType, WiaImageIntent.ColorIntent, 
                                          WiaImageBias.MaximizeQuality, FormatID, falsefalsetrue); 
    img.SaveFile(FileName);
    return System.IO.File.Exists(FileName); 
}


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
uses WIA_TLB;

const
  // FormatID
  wiaFormatBMP  = '{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}';
  wiaFormatPNG  = '{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}';
  wiaFormatGIF  = '{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}';
  wiaFormatJPEG = '{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}';
  wiaFormatTIFF = '{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}';

function ScanAndSaveDocument(const FileName: string; FormatID: string): Boolean;
var
  dlg: ICommonDialog;
  img: IImageFile;
begin
  dlg := CoCommonDialog.Create;
  img := dlg.ShowAcquireImage(ScannerDeviceType, ColorIntent, MaximizeQuality,
                              FormatID, false, false, true);
  img.SaveFile(FileName);
  result := FileExists(FileName);
end;

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)