public void Region_Preview_star()
        {
            UInt32 num         = 0;
            UInt32 Form_Width  = 0;
            UInt32 Form_Height = 0;

            Protocol_Analysis.Cregion_parameter m_region_par = new Protocol_Analysis.Cregion_parameter();
            Protocol_Analysis.Cregion_parameter m_origin     = new Protocol_Analysis.Cregion_parameter();

            m_origin.X = 40;
            m_origin.Y = 40;

            this.Width  = 300;
            this.Height = 150;

            for (num = 0; num < oProtocol_Analysis.m_region_par.Length; num++)
            {
                m_region_par = Onbon_Protocol_Form.oProtocol_Analysis.m_region_par[num];
                if (m_region_par.bEnable == 1)
                {
                    if (Form_Width < m_region_par.X + m_region_par.width)
                    {
                        Form_Width = m_region_par.X + m_region_par.width;
                    }
                    if (Form_Height < m_region_par.Y + m_region_par.height)
                    {
                        Form_Height = m_region_par.Y + m_region_par.height;
                    }
                }
            }
            if ((Form_Width + m_origin.X + 20) > this.Width)
            {
                this.Width = (int)(Form_Width + m_origin.X + 20);
            }
            if ((Form_Height + m_origin.Y + 60) > this.Height)
            {
                this.Height = (int)(Form_Height + m_origin.Y + 60);
            }


            Pen      p      = new Pen(Color.Black, 1);
            Graphics grp    = CreateGraphics();
            Font     myFont = new Font("宋体", 12, FontStyle.Bold);

            Brush bush;

            bush = new SolidBrush(Color.Blue);

            grp.DrawString("区域位置预览", myFont, bush, this.Width / 2 - 60, 0);

            for (num = 0; num < oProtocol_Analysis.m_region_par.Length; num++)
            {
                m_region_par = Onbon_Protocol_Form.oProtocol_Analysis.m_region_par[num];
                if (m_region_par.bEnable == 1)
                {
                    grp.DrawRectangle(p, m_region_par.X + m_origin.X, m_region_par.Y + m_origin.Y, m_region_par.width, m_region_par.height);
                    grp.DrawString(m_region_par.ID.ToString(), myFont, bush, m_region_par.width / 2 + m_region_par.X + m_origin.X - 8, m_region_par.height / 2 + m_region_par.Y + m_origin.Y - 8);
                }
            }
        }
        public void Data_Preview_star(byte[] myarray, int ID, int LED_type)
        {
            UInt32 data_r, data_g, data_b;
            int    point_r, point_g, point_b;

            UInt32 num       = 0;
            UInt32 left_bit  = 0;
            UInt32 right_bit = 0;

            data_r = 0;
            data_g = 0;
            data_b = 0;

            Protocol_Analysis.Cregion_parameter m_region_par = new Protocol_Analysis.Cregion_parameter();
            Protocol_Analysis.Cregion_parameter m_region     = new Protocol_Analysis.Cregion_parameter();

            for (num = 0; num < oProtocol_Analysis.m_region_par.Length; num++)
            {
                m_region_par = Onbon_Protocol_Form.oProtocol_Analysis.m_region_par[num];
                if ((m_region_par.bEnable == 1) && (m_region_par.ID == ID))
                {
                    m_region.X      = m_region_par.X;
                    m_region.Y      = m_region_par.Y;
                    m_region.width  = m_region_par.width;
                    m_region.height = m_region_par.height;
                    break;
                }
            }
            if ((m_region.X % 32) != 0)
            {
                left_bit = (m_region.X % 32);
            }
            if (((m_region.X + m_region.width) % 32) != 0)
            {
                right_bit = (32 - ((m_region.X + m_region.width) % 32));
            }
            m_region.width = m_region.width + left_bit + right_bit;


            Bitmap bmp = new Bitmap((int)(m_region.width), (int)m_region.height);

            for (int Y = 0; Y < m_region.height; Y++)
            {
                for (int X = 0; X < m_region.width / 8;)
                {
                    data_r = (((UInt32)myarray[m_region.width / 8 * Y + X + 0]) << 0) |
                             (((UInt32)myarray[m_region.width / 8 * Y + X + 1]) << 8) |
                             (((UInt32)myarray[m_region.width / 8 * Y + X + 2]) << 16) |
                             (((UInt32)myarray[m_region.width / 8 * Y + X + 3]) << 24);
                    if ((LED_type == 1) || (LED_type == 2))
                    {
                        data_g = (((UInt32)myarray[m_region.width / 8 * m_region.height + m_region.width / 8 * Y + X + 0]) << 0) |
                                 (((UInt32)myarray[m_region.width / 8 * m_region.height + m_region.width / 8 * Y + X + 1]) << 8) |
                                 (((UInt32)myarray[m_region.width / 8 * m_region.height + m_region.width / 8 * Y + X + 2]) << 16) |
                                 (((UInt32)myarray[m_region.width / 8 * m_region.height + m_region.width / 8 * Y + X + 3]) << 24);
                    }
                    if (LED_type == 2)
                    {
                        data_b = (((UInt32)myarray[m_region.width / 8 * m_region.height * 2 + m_region.width / 8 * Y + X + 0]) << 0) |
                                 (((UInt32)myarray[m_region.width / 8 * m_region.height * 2 + m_region.width / 8 * Y + X + 1]) << 8) |
                                 (((UInt32)myarray[m_region.width / 8 * m_region.height * 2 + m_region.width / 8 * Y + X + 2]) << 16) |
                                 (((UInt32)myarray[m_region.width / 8 * m_region.height * 2 + m_region.width / 8 * Y + X + 3]) << 24);
                    }
                    for (int bit = 0; bit < 32; bit++)
                    {
                        point_r = 0;
                        point_g = 0;
                        point_b = 0;
                        if (((data_r >> (32 - bit)) & 0x01) == 0)
                        {
                            point_r = 255;
                        }
                        if ((LED_type == 1) || (LED_type == 2))
                        {
                            if (((data_g >> (32 - bit)) & 0x01) == 0)
                            {
                                point_g = 255;
                            }
                        }
                        if (LED_type == 2)
                        {
                            if (((data_b >> (32 - bit)) & 0x01) == 0)
                            {
                                point_b = 255;
                            }
                        }
                        bmp.SetPixel(X * 8 + bit, Y, Color.FromArgb(255, point_r, point_g, point_b));
                    }
                    X += 4;
                }
            }

            /*裁剪图片*/
            Bitmap target = new Bitmap((int)(m_region.width - left_bit - right_bit), (int)m_region.height);

            target = Cut(bmp, (int)left_bit, 0, (int)(m_region.width - left_bit - right_bit), (int)m_region.height);

            data_pictureBox.Image = target;

            //bmp.Save("D:\\test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }