Acquire Images Using Fast TWAIN Features

Take the following steps to start a project and to add some code that acquires the images using the LEADTOOLS Fast TWAIN features:

  1. Start Microsoft Visual Studio.
  2. Select the File->New menu option, click the Project menu.
  3. From Project Types select Other Languages to expand it, then select Visual C++ to expand it, then select MFC. From the right window select MFC Application.
  4. In the Project Name dialog box, enter FastTwainTutor.
  5. In the Location dialog box, use the Examples\ClassLibrary\MSVC directory of your LEAD installation. For example, if you installed LEADTOOLS in C:\LEADTOOLS 20\, enter C:\LEADTOOLS 20\Examples\ClassLibrary\MSVC, then Click OK. Then click Next.
  6. Choose Dialog based and click Finish.
  7. Click the Solution Explorer tab, and then click the FastTwainTutor project to expand it. Click the Header files, then open FastTwainTutor.h.
  8. Add the following line immediately before the class CFastTwainTutorApp declaration (keep in mind, you may have to change the path to where the header files reside):

       #include "..\..\..\..\include\ClassLib\ltwrappr.h" 

  9. Click the Class View tab.

  10. Click to open the FastTwainTutor classes branch.
  11. Click CFastTwainTutorApp, and then double click the CFastTwainTutorApp(void) constructor.
  12. Add the following lines after //TODO: add construction code here:

    LBase::LoadLibraries(LT_ALL_LEADLIB);   
    L_TCHAR * pszLicenseFile = L"Replace this with the path to the LEADTOOLS license file";   
    L_TCHAR * pszDeveloperKey = L"Replace this with your developer key";   
    LSettings::SetLicenseFile(pszLicenseFile, pszDeveloperKey);   

  13. Create a new file called Imports.cpp and place it beside your project files.

    1. In the Project Workspace, click the Solution Explorer tab.
    2. Double-click the FastTwainTutor folder to open it.
    3. Right-click the Source files folder and select Add New item.
    4. Expand the Visual C++ tree, if it is not already expanded.
    5. Select Codefrom the sub-tree.
    6. Select C++ File (.cpp) from the right window
    7. In the Name text box, specify Imports.cpp
    8. Click the Add button.
    9. Double-click the imports.cpp in the Solution Explorer and add the following lines:
      #include "StdAfx.h"   
      #if defined(WIN64)    
            
      #else   
         #pragma comment(lib, "..\\..\\..\\..\\Lib\\CDLLVC10\\Win32\\Ltwvc_u.lib")   
      #endif // #if defined(WIN64)  
  14. Click the Solution Explorer tab.

  15. Double-click the FastTwainTutor folder to open it.
  16. Double-click the Header Files folder to open it. Then double-click the FastTwainTutorDlg.h file to open it.
  17. Add the following class declaration before the CFastTwainTutorDlg class.

    class LMyTwain : public LTwain 
    { 
       LEAD_DECLAREOBJECT(LMyTwain); 
    public: 
       LMyTwain(); 
       virtual ~LMyTwain(); 
       virtual L_INT BitmapCallBack(pBITMAPHANDLE pBitmap); 
    }; 

  18. Click the Solution Explorer tab.

  19. Double-click the FastTwainTutor folder to open it.
  20. Double-click the Source Files folder to open it. Then double-click FastTwainTutorDlg.cpp file to open it.
  21. Add the following class:

    LEAD_IMPLEMENTOBJECT(LMyTwain); 
    LMyTwain::LMyTwain() 
    { 
       EnableCallBack(TRUE); 
    } 
    LMyTwain::~LMyTwain() 
    { 
    } 
    L_INT LMyTwain::BitmapCallBack(pBITMAPHANDLE pBitmap) 
    { 
       //Copy the acquired bitmap here 
       return SUCCESS; 
    } 

  22. Click the Class View tab.

  23. Right-click CFastTwainTutorDlg and select Add Add Variable...
  24. For Variable Type enter LMyTwain, and for Variable Declaration put m_MyTwain. Leave Access as Public and click OK.
  25. Click to open the CFastTwainTutorDlg branch. Double click the OnInitDialog() function and add the following code after line:

    // TODO: Add extra initialization here
       APPLICATIONDATA AppData;    
       memset(&AppData, 0, sizeof(APPLICATIONDATA));    
       AppData.hWnd = m_hWnd;    
       AppData.uStructSize = sizeof(AppData);    
       lstrcpy(AppData.szManufacturerName, _T("LEAD Technologies, Inc."));    
       lstrcpy(AppData.szAppProductFamily, _T("LEAD Test Applications"));   
       lstrcpy(AppData.szVersionInfo, _T("Version 1.0"));   
       lstrcpy(AppData.szAppName, _T("TWAIN Test Application"));   
       m_MyTwain.InitSession(&AppData);  

  26. Right-click the CFastTwainTutorDlgbranch, and choose Properties.

  27. From the Properties window toolbar, click the Messages icon. Then click the empty area beside the item WM_DESTROY and choose OnDestroy.
  28. Add the following code after the opening bracket {:

       m_MyTwain.EndSession();   
       LBase::UnloadLibraries(LT_ALL_LEADLIB);  

  29. Click the Solution Explorer tab.

  30. Double-click the TwainTutor folder to open it.
  31. Double-click the Resource Files folder to open it. Then double click the FastTwainTutor.rc file to open it, then double-click Dialog, and then double-click IDD_FASTTWAINTUTOR_DIALOG
  32. Now, drag and drop 2 radio buttons, 1 check box, 1 button, 2 text boxes, and change their properties as follows:

    Control ID Caption
    Button1 IDC_ACQUIRE Fast Acquire
    Radio1 IDC_NATIVE Native
    Radio2 IDC_MEMORY Memory
    Check1 IDC_USE_BUFFER_SIZE Use Buffer Size
    Text1 IDC_EDIT1 IDC_BUFFERSIZE
    Text2 IDC_EDIT2 IDC_FILENAME
  33. Add the following member variables for the following controls. To do so, go to the Class View from Solution Explorer, select CFastTwainTutorDlg, and then go to Project -> Add Variable menu, then do the following:

    1. Select the Control Variable check box.
    2. Select each of the following controls and add the corresponding member variable by pressing the Add Variable button.
    Control ID Member variable Type
    Check1 IDC_USE_BUFFER_SIZE m_bUseBufferSize BOOL
    Text1 IDC_BUFFERSIZE m_nBufferSize int
    Text2 IDC_FILENAME m_csFileName CString
  34. From the View menu, select the Other Windows menu, then select the Resource View menu, then select Dialog, and select IDD_FASTTWAINTUTOR_DIALOG.

  35. Double-click the Fast Acquire button, and add the following code:

    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 = m_MyTwain.FastAcquire((L_TCHAR *)(LPCTSTR)m_csFileName, 
    LTWAIN_SHOW_USER_INTERFACE | LTWAIN_USE_THREAD_MODE, 
    uTransferMode, 
    nFormat, 
    1, 
    TRUE, 
    m_nBufferSize, 
    !m_bUseBufferSize); 
    if (nRet == 1) 
       AfxMessageBox(TEXT("Fast Scanning process done successfully...")); 
    else 
    { 
       CString csError; 
       csError.Format(TEXT("FastAcquire failed, Error = %d\n"), nRet); 
       AfxMessageBox(csError); 
    } 

  36. Compile and test the program.

Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS TWAIN C++ Class Library Help