gpt4 book ai didi

c# - C#中int[]转换为byte[]类型指针

转载 作者:行者123 更新时间:2023-12-02 21:56:22 24 4
gpt4 key购买 nike

我需要将 int[] 转换为 byte[] 指针。为了能够逐像素填充 WriteableBitmap 的条目,需要执行上述操作,如下所示:

//previewBuffer1 is of type byte[]
WriteableBitmap wb1 = new WriteableBitmap(nVidWidth, nVidHeight);
int k=0;
// wb1.Pixels is of type int[] by default
byte* data = (byte*) wb1.Pixels; // ****THIS DOESN'T WORK. THROWS ERROR. HOW CAN I ACCOMPLISH THIS***
for (int i=0; i<nVidHeight; i++){
for (int j=0; j<nVidWidth; j++){
byte grayscaleval = previewBuffer1[k];
data [4*k] = grayscaleval ;
data [4*k + 1] = grayscaleval ;
data [4*k + 2] = grayscaleval ;
k++;
}
}

如何获取 wb1.Pixels 类型为 int[] 的 byte* 指针?

最佳答案

听起来您想将数组中的每个 int 视为字节序列 - BitConverter.GetBytes 怎么样? ?

byte[] bytes = BitConverter.GetBytes(intValue);

如果您想避免数组复制等,请使用允许指针的unsafe(您需要在项目属性中勾选“允许不安全代码”复选框):

unsafe static void UnsafeConvert(int value)
{
byte* bytes = (byte*)&value;
byte first = bytes[0];
...
}

关于c# - C#中int[]转换为byte[]类型指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17714662/

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