Net Core教程

C#使用内存和指针方式将字节数组转换为Bitmap

本文主要是介绍C#使用内存和指针方式将字节数组转换为Bitmap,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
        /// <summary>
        /// 指针方式转
        /// </summary>
        /// <param name="Width">图像的宽</param>
        /// <param name="Height">图像的高</param>
        /// <param name="pointer">指针</param>
        private void Mono8ToBitmap(int Width,int Height,IntPtr pointer)
        {
            Bitmap bmp = new Bitmap(Width, Height, Width * 1, PixelFormat.Format8bppIndexed, pointer);
            ColorPalette cp = bmp.Palette;
            // init palette
            for (int i = 0; i < 256; i++)
            {
                cp.Entries[i] = Color.FromArgb(i, i, i);
            }
            // set palette back
            bmp.Palette = cp;
            pictureBox1.Invalidate();
        }

        private void BytesToBitmap(int Width,int Height)
        {
            //一,内存复制方式:
            Bitmap myimg = new Bitmap(Width, Height, PixelFormat.Format8bppIndexed);
            BitmapData mydata;
            mydata = myimg.LockBits(new Rectangle(0, 0, myimg.Width, myimg.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            System.Runtime.InteropServices.Marshal.Copy(b, 0, mydata.Scan0, b.Length);
            myimg.UnlockBits(mydata);
            pictureBox1.Invalidate();
        }

 

这篇关于C#使用内存和指针方式将字节数组转换为Bitmap的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!