Exemplo n.º 1
0
 public unsafe bool initCard()
 {
     mv = new MicroView();
     // okLoadInitParam(m_hBoard,0);
     try
     {
         MicroView.MV_IMAGEINFO  BufInfo = new MicroView.MV_IMAGEINFO();
         MicroView.MV_IMAGEINFO *pBufInfo;                                                                                       //定义结构指针
         pBufInfo = &BufInfo;
         bool aa = MicroView.MV_SetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.WORK_FIELD, MicroView.COLLECTION_FRAME); //设置按帧采集方式
         bool ss = MicroView.MV_SetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.SET_GARBIMAGEINFO, (uint)pBufInfo);
         //MicroView.MV_SetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.GARB_IN_HEIGHT, 576);//GARB_IN_HEIGHT			= 30,
         //MicroView.MV_SetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.GARB_IN_WIDTH, 768);//GARB_IN_WIDTH			= 31,
         //MicroView.MV_SetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.GARB_HEIGHT, 576);//GARB_HEIGHT				= 28,
         //MicroView.MV_SetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.GARB_WIDTH, 768);//GARB_WIDTH				= 29,
         //MicroView.MV_SetDeviceParameter(m_hBoard, MicroView.MV_PARAMTER.ADJUST_LUMINANCE, 128);
         //MicroView.MV_SetDeviceParameter(m_hBoard, MicroView.MV_PARAMTER.ADJUST_SATURATION, 128);
         //MicroView.MV_SetDeviceParameter(m_hBoard, MicroView.MV_PARAMTER.ADJUST_HUE, 128);
         //MicroView.MV_SetDeviceParameter(m_hBoard, MicroView.MV_PARAMTER.ADJUST_CONTRAST, 128);
         //MicroView.MV_SetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.GARB_BITDESCRIBE, (uint)MicroView.DATA_aRGB8888);
         width  = MicroView.MV_GetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.GARB_WIDTH);
         height = MicroView.MV_GetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.GARB_HEIGHT);
         bits   = MicroView.MV_GetDeviceParameter(m_hBoard, (int)MicroView.MV_PARAMTER.GARB_BITDESCRIBE);
     }
     catch
     {
         MicroView.MV_GetLastError(true);
         return(false);
     }
     return(true);
 }
Exemplo n.º 2
0
        public bool seqprogress(IntPtr pData, ref MicroView.MV_IMAGEINFO pImageInfo, IntPtr pUserData, uint Index)
        {
            int stride = 0;

            switch (bits)
            {
            case MicroView.DATA_MONOCHOY8:
                stride = width;
                bm     = new Bitmap(width, height, stride, System.Drawing.Imaging.PixelFormat.Format8bppIndexed, pData);
                //创建灰阶
                ColorPalette palette = bm.Palette;
                for (int i = 0; i < palette.Entries.Length; i++)
                {
                    palette.Entries[i] = Color.FromArgb(i, i, i);
                }
                bm.Palette = palette;
                break;

            case MicroView.DATA_aRGB8888:
                stride = 4 * width;
                bm     = new Bitmap(width, height, stride, System.Drawing.Imaging.PixelFormat.Format32bppRgb, pData);
                break;

            case MicroView.DATA_CO_RGB24:
                stride = 3 * width;
                bm     = new Bitmap(width, height, stride, System.Drawing.Imaging.PixelFormat.Format24bppRgb, pData);
                break;

            case MicroView.DATA_CO_RGB565:
                stride = 2 * width;
                bm     = new Bitmap(width, height, stride, System.Drawing.Imaging.PixelFormat.Format16bppRgb565, pData);
                break;

            default:
                MessageBox.Show("没找到卡!");
                CloseCard();
                break;
            }
            GetCallBackEventHandler temp = GetCallBack;

            if (temp != null)
            {
                temp(bm);
            }
            return(true);
        }