線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:755
推到 Plurk!
推到 Facebook!

有關ccd設定Frame大小的問題

尚未結案
left
一般會員


發表:8
回覆:10
積分:3
註冊:2004-01-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-25 17:22:29 IP:140.130.xxx.xxx 未訂閱
請問一下各位大大 我現在遇到一個問題是 一開始ccd default抓取raw data的時候 假設是480*640 但是我怎麼在程式執行時更改他呢?          //---------------------------------------------------------------------------    #include  #pragma hdrstop #include #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; HWND hCapture; Graphics::TBitmap *ImageBuffer; LRESULT PASCAL FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr); int sequence_number; int Width=640; int Height=480; //------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Form1->DoubleBuffered = true; hCapture= capCreateCaptureWindow("My Capture Window", WS_CHILD | WS_VISIBLE, 0, 0,1,1,Panel1->Handle, 0); capDriverConnect (hCapture,0); capPreviewScale(hCapture,false); capPreviewRate(hCapture, 1000/30); capPreview(hCapture,true); capOverlay(hCapture, true); } //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ImageBuffer = new Graphics::TBitmap(); ImageBuffer->Width = Width; ImageBuffer->Height = Height; ImageBuffer->PixelFormat = pf24bit; capSetCallbackOnFrame(hCapture, (FARPROC)FrameCallbackProc); } // FrameCallbackProc: frame callback function // hWnd: capture window handle // lpVHdr: pointer to struct containing captured // frame information // LRESULT PASCAL FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr) { // fwrite(fp,lpVHdr->lpData,lpVHdr->dwBufferLength,1); BYTE *p = (BYTE *)lpVHdr->lpData; int si=0; for (int y=0; yScanLine[y]; for (int x=0, offset=0; x Canvas->TextOut(10,10,FormatDateTime("hh:nn:ss:zz",Now()) " Frame >" IntToStr(sequence_number)); Form1->Image1->Canvas->Draw(0, 0,ImageBuffer); sequence_number ; // 擷取圖形放在Image1 return (LRESULT)true; }
Roach
中階會員


發表:61
回覆:104
積分:98
註冊:2002-11-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-13 21:39:58 IP:211.20.xxx.xxx 未訂閱
弄一個按鈕按下去執行下面  
 
  capDlgVideoFormat(hCapWnd);
  capCaptureStop(hCapWnd);      capDriverConnect (hCapWnd, 0 );
  capPreview(hCapWnd,true); //顯示於視窗
  capPreviewRate(hCapWnd, 1000/30);
  capPreviewScale(hCapWnd,true);
  capOverlay(hCapWnd, true);
  BITMAPINFO bmi;
  capGetVideoFormat(hCapWnd, &bmi, sizeof(BITMAPINFO));
  SetWindowPos(hCapWnd, 0, 0, 0, bmi.bmiHeader.biWidth,bmi.bmiHeader.biHeight,0);
  Form1->Panel1->ClientHeight=bmi.bmiHeader.biHeight;
  Form1->Panel1->ClientWidth=bmi.bmiHeader.biWidth;
試試看是不是你要的 -------------- 只是為了成就感??
系統時間:2024-05-12 17:27:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!