2014-04-08 15 views
-1

트위닝 스캐너로 스캔하고 Mdi 형식으로 코드 출력을 출력합니다. 픽처 박스에 표시해야합니다. 가능합니까? 나는 intptr을 이미지 또는 somethnig로 변환하려고 시도하지만 올바른 방법을 찾지는 못한다.트웨인 스캔 출력 이미지로 intptr 변환

아래 코드;

     case TwainCommand.TransferReady: 
         { 
         ArrayList pics = tw.TransferPictures(); 
         EndingScan(); 
         tw.CloseSrc(); 
         picnumber++; 
         for (int i = 0; i < pics.Count; i++) 
         { 
          IntPtr img = (IntPtr)pics[i]; 
          PicForm newpic = new PicForm(img); 
          newpic.MdiParent = this; 
          int picnum = i + 1; 
          newpic.Text = "ScanPass" + picnumber.ToString() + "_Pic" +    picnum.ToString(); 
         newpic.Show(); 
         } 
         break; 

      public ArrayList TransferPictures() 
        { 
        ArrayList pics = new ArrayList(); 
        if(srcds.Id == IntPtr.Zero) 
         return pics; 
        TwRC rc; 
        IntPtr hbitmap = IntPtr.Zero; 
        TwPendingXfers pxfr = new TwPendingXfers(); 
        do 
       { 
      pxfr.Count = 0; 
      hbitmap = IntPtr.Zero; 
      TwImageInfo iinf = new TwImageInfo(); 
      rc = DSiinf(appid, srcds, TwDG.Image, TwDAT.ImageInfo, TwMSG.Get, iinf); 
      if(rc != TwRC.Success) 
       { 
       CloseSrc(); 
       return pics; 
       } 
      rc = DSixfer(appid, srcds, TwDG.Image, TwDAT.ImageNativeXfer, TwMSG.Get, ref hbitmap); 
      if(rc != TwRC.XferDone) 
       { 
       CloseSrc(); 
       return pics; 
       } 
      rc = DSpxfer(appid, srcds, TwDG.Control, TwDAT.PendingXfers, TwMSG.EndXfer, pxfr); 
      if(rc != TwRC.Success) 
       { 
       CloseSrc(); 
       return pics; 
       } 
      pics.Add(hbitmap); 
      } 
     while(pxfr.Count != 0); 
     rc = DSpxfer(appid, srcds, TwDG.Control, TwDAT.PendingXfers, TwMSG.Reset, pxfr); 
     return pics; 
     } 

답변