gpt4 book ai didi

c# - 访问位图的字节数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:31:55 26 4
gpt4 key购买 nike

1- 在 Windows CE 中,我有一个 C# 中的位图对象。

2- 我在 extern dll 中有一个 C 函数,它期望指向字节数组的指针作为参数,该字节数组表示 RGB565 格式的图像、宽度和高度。此函数将利用此字节数组。

所以我需要传递Bitmap对象的字节数组指针,但是我可以找到一个实用的方法来获取这个指针。一种方法是使用内存流或其他方式将此位图转换为字节数组,但它会创建一个新的字节数组,因此我将在内存中保留对象、位图和字节数组,但我不想要它因为可用内存很少,所以我需要访问位图对象的字节数组,而不是创建新的字节数组。

谁能帮帮我?

最佳答案

你可以做这样的事情,其中​​图像是你的位图:

Rectangle area = (new Rectangle(0, 0, image.width, image.height));
BtimapData bitmapData = image.LockBits(area, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
stride = bitmapData.Stride;
IntPtr ptr = bitmapData.Scan0;

我知道您不想将位图的 RGB 值复制到另一个数组,但这是最好的解决方案。只有在用 C 代码绘制时,数组才会在内存中。我在 Windows Professional 6 中使用过类似的方法,它并没有引入很多开销。有许多可用的 FastBitmap 实现。你可以在stackoverflow上查看这个问题或者这个 implementation

关于c# - 访问位图的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com