델파이/프로그래밍 Tip

EZTW32.DLL TWAIN 스캐너 사용 예

지병철 2011. 2. 7. 13:27



1.0.0.0__EZTW32.zip (eztw32.dll)

eztw1.zip (프로그램소스)


C++빌더에서 스캐너를 사용할 수 있는 Twain라이브러리와 사용법입니다. 

아래와 같이 사용하세요. 


void __fastcall TForm1::Button1Click(TObject *Sender) 

    int (__stdcall* TWAIN_Acquire)(HWND hwnd, Cardinal pixmask); 
    int (__stdcall* TWAIN_Select)(HWND hwnd); 
    int (__stdcall* TWAIN_Load)(); 
    int (__stdcall* TWAIN_Unload)(); 

    HINSTANCE hinst; 
    hinst = LoadLibrary("eztw32.dll"); 

    TWAIN_Acquire = (int (__stdcall*)(HWND hwnd, Cardinal pixmask))GetProcAddress(hinst,"TWAIN_AcquireToClipboard"); 
    TWAIN_Select = (int (__stdcall*)(HWND hwnd))GetProcAddress(hinst,"TWAIN_SelectImageSource"); 
    TWAIN_Load = (int (__stdcall*)())GetProcAddress(hinst,"TWAIN_LoadSourceManager"); 
    TWAIN_Unload = (int (__stdcall*)())GetProcAddress(hinst,"TWAIN_UnloadSourceManager"); 


    Graphics::TBitmap *Bmp = new Graphics::TBitmap(); 
    TClipboard *pCB = Clipboard(); 


  // 비트맵 생성. 
    try 
    { 
      // 소스 선택창을 띄우고... 
      TWAIN_Select(Handle); 
      // 트와인 소스를 메모리로 올린다. 
      if (TWAIN_Load >0) 
      { 
        // 엑콰이어된 이미지를 클립보드로 이미지를 보내고, 
        if (TWAIN_Acquire(Handle,0)>0) 
        { 
          // 클립보드의 이미지를 비트맵으로 옮긴다. 
          Bmp->LoadFromClipboardFormat( 
              CF_BITMAP, 
              pCB->GetAsHandle(CF_BITMAP), 0); 
          } 
        // 클립보드를 비우고, 
        pCB->Clear(); 
        // 트와인 소스 매니저를 언로드. 
        TWAIN_Unload(); 
        // 이미지에 비트맵을 Assgn한다. 
        Image1->Picture->Bitmap->Assign(Bmp); 
        delete Bmp; 
      } 
    } 
    catch(...) 

    { 

      //비트맵해제. 
      delete Bmp; 
    } 

    FreeLibrary(hinst); 


eztw1.zip
0.19MB
1.0.0.0__EZTW32.zip
0.03MB