Acquire Images Using Fast TWAIN Features

Note: The purpose of this TWAIN tutorial is to provide you a quick and easy way to generate a TWAIN program. For more in depth TWAIN programming, refer to the TWAIN demo.

To acquires images using the LEADTOOLS Fast TWAIN features:

 

1. Start a new project as follows:
  Run Microsoft Visual Studio 2005, select the File -> New -> Project menu option, and do the following:
  a. Select the Other Languages -> Visual C++ -> MFC.
  b. Select MFC Application as the project type.
  c. In the Project name text box, specify tutor.
  d. In the Location text box, specify the path of the project.
  E Click the OK button, then Click Next button
2. In the next dialog box, do the following:
  a. Select Dialog based.
  b. Ensure Use MFC in shared DLL is selected
  c. Click the Finish button.
3. Add #include statements to your program so you can access the LEAD Twain DLL functions:
  a. In the Project Workspace, click the FileView tab.
  b. Double-click the tutor files folder to open it.
  c. Double-click the Header Files folder to open it.
  d. Double-click the StdAfx.h file to edit it.
  Add the following lines to the end of the file (keep in mind, you may have to change the path to where the dll's reside):

 

#include "..\..\..\include\l_bitmap.h"
#include "..\..\..\include\lttwn.h"

4.

Add the LEAD Twain LIB file to your program:

 

Open tutorDlg.cpp, and add the following line after #include statements:

#pragma comment(lib, "..\\..\\..\\Lib"L_VER_DESIGNATOR"\\CDLL\\Win32\\Lttwn_u.lib")

5. Add a HTWAINSESSION member to the class and set it to NULL in the constructor.
  a. Open tutorDlg.h file and add the following line after HICON m_hIcon;

HTWAINSESSION m_hSession;

  b. Open tutorDlg.cpp file and add the following line inside CtutorDlg::CtutorDlg

 m_hSession = NULL;

 

6. Go to the Solution Explorer and click the Resource Files, double click the .rc file. Double-click Dialog and double-click IDD_TUTOR_DIALOG to bring up the application's dialog box.
7. Add 1 check box. To do this, select the check box control on the Controls toolbar. Then, click and drag to position the button on the dialog box. Then double-click the check box to change its properties. Set the properties as follows:
  ID Caption
  IDC_USEBUFFERSIZE Use Buffer Size
8. Add two Radio buttons in addition to the above buttons.
  ID Caption
  IDC_NATIVE Native Mode
  IDC_MEMORY Memory Mode
9. Add the following button:
  ID Caption
  IDC_ACQUIRE Fast Acquire
10. Add the following two edit boxes and name them as follows:
  ID
  IDC_BUFFERSIZE
  IDC_FILENAME
11. Add the following code to the end of OnInitDialog before the return statement:

APPLICATIONDATA AppData;   
AppData.uStructSize = sizeof(APPLICATIONDATA);   
AppData.hWnd = GetSafeHwnd(); // Window handle of an application, may not be NULL   
lstrcpy (AppData.szManufacturerName, TEXT("LEAD Technologies, Inc.")); // Application manufacturer name   
lstrcpy (AppData.szAppProductFamily, TEXT("LEAD Test Applications")); // Application product family   
lstrcpy (AppData.szVersionInfo, TEXT("Version 14.0")); // Application version info   
lstrcpy (AppData.szAppName, TEXT("TWAIN Utility Application")); // Application Name   
// initialize the twain session to use other lead twain functions   
L_INT nRet = L_TwainInitSession (&m_hSession, &AppData);   
if (nRet != SUCCESS)   
   return FALSE; 

12. To end the Twain session and free memory allocated by the Twain DLL, add the following code in the WM_DESTROY of the CTutorDlg. Do the following:
  a. Double click the dialog IDD_TUTOR_DIALOG, and then go to View -> Properties Window, and then press Messages button.
  b. Select WM_DESTROY, and then add OnDestroy from the list box.

if (m_hSession)   
   L_TwainEndSession (&m_hSession); 

13. Add the following member variables for the following controls. To do so, go to Class View from Solution Explorer, select CtutorDlg, and then go to Project -> Add Variable menu, then do the following:
  a. Check Control variable check box.
  b. Select each of the following controls and add the corresponding member variable by pressing the Finish variable button.

 

 

ID

Member variable

Type

Category

 

IDC_USEBUFFERSIZE

m_bUseBufferSize

BOOL

Value

 

IDC_BUFFERSIZE

m_nBufferSize

int

Value

 

IDC_FILENAME

m_csFileName

CString

Value

14.

Double click the dialog IDD_TUTOR_DIALOG, and then double click on Fast Acquire button to add OnBnClickedAcquire handler function

 

Add the following code

void CTutorDlg:: OnBnClickedAcquire () 
{ 
   UpdateData(); 
   L_INT  nFormat; 
   L_UINT uTransferMode; 
   BOOL bMemory = IsDlgButtonChecked(IDC_MEMORY); 
   if (bMemory) 
   { 
      uTransferMode = LTWAIN_BUFFER_MODE; 
      nFormat = FILE_CCITT_GROUP4; 
   } 
   else 
   { 
      uTransferMode = LTWAIN_NATIVE_MODE; 
      nFormat = FILE_TIF; 
   } 
   L_INT nRet = L_TwainAcquireMulti (m_hSession, 
   (L_TCHAR *)(LPCTSTR)m_csFileName, 
   LTWAIN_SHOW_USER_INTERFACE | LTWAIN_USE_THREAD_MODE, 
   uTransferMode, 
   nFormat, 
   1, 
   TRUE, 
   m_nBufferSize, 
   !m_bUseBufferSize , NULL, NULL); 
   if (nRet == 1) 
      AfxMessageBox(TEXT("Fast Scanning process done successfully...")); 
   else 
   { 
      CString csError; 
      csError.Format(TEXT("AcquireMulti failed, Error = %d\n"), nRet); 
      AfxMessageBox(csError); 
   } 
} 

15.

Compile and run your program to test it.

16.

Enter a value (say 1000) for the buffer size and a file name (include full path) for the scanned image.

Help Version 19.0.2017.10.19
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS TWAIN C API Help