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

影像處理BCB

 
h46382002
一般會員


發表:2
回覆:1
積分:0
註冊:2006-12-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-05 22:25:36 IP:140.116.xxx.xxx 訂閱
這是程式碼
請問有人可告訴哪些指令是在抓攝影機的照片
extern String FilePath;
extern bool StartCapture;
extern "C" AM_MEDIA_TYPE g_StillMediaType;

class SampleGrabberCallback : public ISampleGrabberCB
{
public:

//static SYSTEMTIME st; //--計算系統時間
// Fake referance counting.
STDMETHODIMP_(ULONG) AddRef() { return 1; }
STDMETHODIMP_(ULONG) Release() { return 2; }

STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject)
{
if (NULL == ppvObject) return E_POINTER;
if (riid == __uuidof(IUnknown))
{
*ppvObject = static_cast(this);
return S_OK;
}
if (riid == __uuidof(ISampleGrabberCB))
{
*ppvObject = static_cast(this);
return S_OK;
}
return E_NOTIMPL;
}

STDMETHODIMP SampleCB(double Time, IMediaSample *pSample)
{
return E_NOTIMPL;
}

STDMETHODIMP BufferCB(double Time, BYTE *pBuffer, long BufferLen)
{
static int kk = 1;

if( !StartCapture )
{
kk = 1;
return S_OK;
}

if ((g_StillMediaType.majortype != MEDIATYPE_Video) ||
// (g_StillMediaType.subtype != MEDIASUBTYPE_RGB24) ||
(g_StillMediaType.formattype != FORMAT_VideoInfo) ||
(g_StillMediaType.cbFormat < sizeof(VIDEOINFOHEADER)) ||
(g_StillMediaType.pbFormat == NULL))
{
return VFW_E_INVALIDMEDIATYPE;
}

String count;
count = FormatFloat("#000",kk) ".bmp";
kk ;

VIDEOINFOHEADER *pVideoHeader = (VIDEOINFOHEADER*)g_StillMediaType.pbFormat;
if(pVideoHeader==NULL)
return E_FAIL;

BITMAPINFO BitmapInfo;
ZeroMemory(&BitmapInfo, sizeof(BitmapInfo));
CopyMemory(&BitmapInfo.bmiHeader, &(pVideoHeader->bmiHeader), sizeof(BITMAPINFOHEADER));

HBITMAP hBitmap;
hBitmap = ::CreateDIBitmap(::GetDC(NULL), &(pVideoHeader->bmiHeader), CBM_INIT, pBuffer, &BitmapInfo, DIB_RGB_COLORS);

if(hBitmap==NULL)
return E_FAIL;

BITMAP bitmap;
Graphics::TBitmap *Bitmap1=new Graphics::TBitmap();
Bitmap1->Handle=hBitmap;
Bitmap1->PixelFormat = pf24bit; // 調整影像 PixelFormat

// 取得 Bmp 的 Width & Height
GetObject(hBitmap,sizeof(BITMAP),&bitmap);
Bitmap1->SaveToFile(count);
delete Bitmap1;

return S_OK;
}

};
------
林映辰
系統時間:2024-04-19 19:57:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!