private void OnImageEvent(ImageEventArgs <HObject> e) { if (e != null) { ImageEvent(this, e); } }
void OnNewImageAcquired(ImageEventArgs <HObject> e) { EventHandler <ImageEventArgs <HObject> > tempEvent = this.ImageAcquired; if (tempEvent != null) { tempEvent(this, e); } }
private void ImageOut(IntPtr pixelPointer, ref MyCamera.MV_FRAME_OUT_INFO_EX pFrameInfo, IntPtr pUser) { HObject objImage = new HObject(); // 原始数据转换 int width = pFrameInfo.nWidth; int height = pFrameInfo.nHeight; if (pFrameInfo.enPixelType == MyCamera.MvGvspPixelType.PixelType_Gvsp_Mono8) { HOperatorSet.GenImage1(out objImage, "byte", width, height, pixelPointer); } else if (pFrameInfo.enPixelType == MyCamera.MvGvspPixelType.PixelType_Gvsp_BayerGR8) { width = (width + 3) & 0xfffc; //宽度补齐为4的倍数 int nLength = width * height; byte[] dataBlue = new byte[nLength]; byte[] dataGreen = new byte[nLength]; byte[] dataRed = new byte[nLength]; for (int row = 0; row < height; row++) { //uint char* ptr = &pixelPointer[row * width * 3]; for (int col = 0; col < width; col++) { //dataBlue[row * width + col] = pixelPointer[3 * col]; //dataGreen[row * width + col] = pixelPointer[3 * col + 1]; //dataRed[row * width + col] = pixelPointer[3 * col + 2]; } } //objImage=new HImage("") //HOperatorSet.GenImage1(out objImage, "byte", width*3, height, pixelPointer); HOperatorSet.GenImageInterleaved(out objImage, pixelPointer, "rgb", width, height, -1, "byte", 0, 0, 0, 0, -1, 0); } ImageEventArgs <HObject> outEvent = new ImageEventArgs <HObject>(); outEvent.image = objImage; OnNewImageAcquired(outEvent); }