private void CameraCtrl_ImageAvailable(object sender, TIS.Imaging.ICImagingControl.ImageAvailableEventArgs e) { try { CameraCtrl.OverlayBitmap.DrawText(Color.Red, 10, 10, _pGPSCtrl.RMCData.LocalTime); CameraCtrl.OverlayBitmap.DrawText(Color.Red, 150, 10, "Lat:" + _pGPSCtrl.RMCData.Latitude + " Log:" + _pGPSCtrl.RMCData.Longitude); CameraCtrl.OverlayBitmap.DrawText(Color.Red, 550, 10, "Speed:" + _pGPSCtrl.RMCData.Speed.ToString()); TIS.Imaging.ImageBuffer ImgBuffer; ImgBuffer = CameraCtrl.ImageActiveBuffer; ImgBuffer.Lock(); // Display the processed image in the IC Imaging Control window. this.BeginInvoke(new ShowBufferDelegate(ShowImageBuffer), ImgBuffer); if (_bIsSave == true) { string strFileName = String.Format("image_{0}_{1}.bmp", (_nSaveCount++), DateTime.Now.ToString("yyyyMMddHHmmssfff")); ImgBuffer.SaveAsBitmap(strFileName); } } catch (Exception ex) { // An exception that occurs here cannot be handled elsewhere. // Therefore, if you are using the ImageAvailable event, watch the debug // output window of your Visual Studio because the message (see below) // will appear there. System.Diagnostics.Debug.WriteLine(ex.Message); } }
private Bitmap GetLiveImage() { ImageBuffer ImgBuffer; ImgBuffer = IcCam.ImageActiveBuffer; unsafe { int bufferSize = ImgBuffer.ActualDataSize; byte *pIn = ImgBuffer.GetImageData(); while (bufferSize-- > 0) { if (*pIn >= 127) { *pIn++ = 255; } else { *pIn++ = 0; } } } return(ImgBuffer.Bitmap); }