Ejemplo n.º 1
0
            /// <summary>
            /// 初始化
            /// </summary>
            /// <returns></returns>
            public static MvSMattingProcessResult GetInstance()
            {
                MvSMattingProcessResult param = new MvSMattingProcessResult();

                param.pSheetImg   = IntPtr.Zero;
                param.pPackageImg = IntPtr.Zero;
                param.pCodePos    = IntPtr.Zero;
                param.reserved    = new IntPtr[MVConst.Len_29];

                return(param);
            }
Ejemplo n.º 2
0
        /// <summary>
        /// 主处理函数
        /// </summary>
        /// <param name="bmp">传入图片</param>
        /// <param name="mcList">条码信息</param>
        /// <returns>传出图片</returns>
        public void MattingProcess(System.Drawing.Bitmap bmp, List <MvBarCode.MvCodeInfo> mcList)
        {
            MvSMattingProcessParam omParam = MvSMattingProcessParam.GetInstance();

            _omResult = MvSMattingProcessResult.GetInstance();

            Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);

            System.Drawing.Imaging.BitmapData bmpData = bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, bmp.PixelFormat);

            var ptrImage = bmpData.Scan0;

            MvsCommon.MvSImage img = MvsCommon.MvSImage.GetInstance();
            img.Height    = bmp.Height;
            img.Width     = bmp.Width;
            img.ImageData = ptrImage;
            img.DataType  = Convert.ToInt32(MvsImgDataType.MVS_IMGDTP_U8);
            img.Type      = Convert.ToInt32(MvsImgType.MVS_IMGTP_UITL_Y);

            omParam.pSrcImg = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(MvsCommon.MvSImage)));
            Marshal.StructureToPtr(img, omParam.pSrcImg, false);

            var ptrPoint = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(MvsCommon.MvSPoint)) * 12);

            for (int j = 0; j < mcList.Count; j++)
            {
                for (int i = 0; i < mcList[j].Region.PtArray.Length; i++)
                {
                    MvsCommon.MvSPoint pt;

                    pt.x = mcList[j].Region.PtArray[i].X;
                    pt.y = mcList[j].Region.PtArray[i].Y;

                    Marshal.StructureToPtr(pt, ptrPoint + Marshal.SizeOf(typeof(MvsCommon.MvSPoint)) * i, false);
                }
            }

            omParam.pCodePos = ptrPoint;
            omParam.nCode    = 1;


            MVAPI.mattingProcess(m_handle, ref omParam, ref _omResult);


            bmp.UnlockBits(bmpData);
        }
Ejemplo n.º 3
0
 public static extern int mattingProcess(IntPtr handle, ref MvSMattingProcessParam param, ref MvSMattingProcessResult result);