unsafe private void Button_CAPTURE_Click(object sender, EventArgs e) { if (m_nDeviceCurSel == -1) { return; } int nCaptureWidth = 0; int nCaptureHeight = 0; int nCaptureBitCount = 0; KSJApiTriggerMode.KSJ_TriggerModeSet(m_nDeviceCurSel, KSJApiTriggerMode.KSJ_TRIGGERMODE.KSJ_TRIGGER_SOFTWARE); int nRet = KSJApiBase.KSJ_CaptureGetSizeEx(m_nDeviceCurSel, ref nCaptureWidth, ref nCaptureHeight, ref nCaptureBitCount); PrintErrorMessage(nRet); byte[] pImageData = new byte[nCaptureWidth * nCaptureHeight * (nCaptureBitCount >> 3)]; long counterStart = 0; KSJWin.QueryPerformanceCounter(ref counterStart); nRet = KSJApiBase.KSJ_CaptureRgbData(m_nDeviceCurSel, pImageData); PrintErrorMessage(nRet); if (nRet != KSJCode.RET_SUCCESS) { TextBox_ELAPSE_TIME.Text = "Capture Fail."; } long counterEnd = 0; KSJWin.QueryPerformanceCounter(ref counterEnd); long nFreq = 0; KSJWin.QueryPerformanceFrequency(ref nFreq); float fInterval = (float)(counterEnd - counterStart); float fElapse = fInterval / (float)nFreq * 1000; // MS bool bCheck = CheckBox_SAVE.Checked; if (bCheck) { string szFileName = string.Format("capture-{0}-{1}-{2}-{3}-{4}-{5}-{6}-{7}.bmp", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTime.Now.Millisecond, fElapse); KSJApiBase.KSJ_HelperSaveToBmp(pImageData, nCaptureWidth, nCaptureHeight, nCaptureBitCount, szFileName); } TextBox_ELAPSE_TIME.Text = string.Format("Elapse: {0}ms", fElapse); Bitmap bitmap = BytesToBitmap(pImageData, nCaptureWidth, nCaptureHeight, nCaptureBitCount); PictureBox_PREVIEWWND.Image = bitmap; }
private void comboBox_TriggerMode_SelectedIndexChanged(object sender, EventArgs e) { m_TriggerMode = (KSJApiTriggerMode.KSJ_TRIGGERMODE)comboBox_TriggerMode.SelectedIndex; KSJApiTriggerMode.KSJ_TriggerModeSet(m_nDeviceCurSel, m_TriggerMode); }