知道内存中一个图片的指针IntPtr大小,转换成图片显示

Posted 搬砖码农的一天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知道内存中一个图片的指针IntPtr大小,转换成图片显示相关的知识,希望对你有一定的参考价值。

//nSize 为总长度
//pImageData 为总数据
//nImageSize //一个图片的长度
byte[] _bytes = new byte[nImageSize];//
 //IntPtr infosIntptr = Marshal.AllocHGlobal(pImageData);
 Marshal.Copy(pImageData, _bytes, 0, nImageSize);//复制
 PtrMoveSize(ref pImageData, nImageSize);//丛总内存中去掉当前的图片所占内存
 nSize -= nImageSize;
 MemoryStream ms = new MemoryStream(_bytes);
 Image img = Image.FromStream(ms);
 ms.Close();
 ms.Dispose();
 pictureBox1.Image = img;
 pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

 

  //指针偏移
  public static void PtrMoveSize(ref IntPtr pData, int nLength)
 {
     if (IntPtr.Size == sizeof(Int64))
       pData = new IntPtr(pData.ToInt64() + nLength);
     else
       pData = new IntPtr(pData.ToInt32() + nLength);
  }

 

以上是关于知道内存中一个图片的指针IntPtr大小,转换成图片显示的主要内容,如果未能解决你的问题,请参考以下文章

为啥/何时使用 `intptr_t` 在 C 中进行类型转换?

我用C#,上一步函数返回了一个IntPtr型的图片指针,我已知图片的长、宽,如何转换成image类。

c#怎么把byte数组转换成图像

如何将 IntPtr 转换为本机 C++ 对象

在 C# 中将 CodeElements 编组到 IntPtr

Unity c#intptr到没有大小信息的字节数组[重复]