Wpf 可写位图:内存分配不匹配-如何解决?

Wpf 可写位图:内存分配不匹配-如何解决?,wpf,writablebitmap,Wpf,Writablebitmap,在我的程序中,我试着用一个指针读取调色板图像(格式为Indexed4)像素 结果图像的尺寸为20×27像素 调色板是16种颜色,因此每种颜色取一个半字节,每个字节携带两个像素 但是,在内存中,WPF会在每个像素行的末尾添加一个额外的DWORD: 我无法处理这种不匹配的特定像素 我需要检查什么BitmapSource属性才能计算此图像的正确步幅?WPF BitmapSource可以使用它喜欢的任何步幅,前提是它可以保存一行中所有像素的值。特别是,它可以为任何类型的优化内存访问调整步幅 通过将步

在我的程序中,我试着用一个指针读取调色板图像(格式为
Indexed4
)像素

结果图像的尺寸为20×27像素

调色板是16种颜色,因此每种颜色取一个半字节,每个字节携带两个像素

但是,在内存中,WPF会在每个像素行的末尾添加一个额外的DWORD:

我无法处理这种不匹配的特定像素



我需要检查什么BitmapSource属性才能计算此图像的正确步幅?

WPF BitmapSource可以使用它喜欢的任何步幅,前提是它可以保存一行中所有像素的值。特别是,它可以为任何类型的优化内存访问调整步幅

通过将步幅乘以行数来计算基础缓冲区的大小:

WritableBitmap bitmap = ...
var bufferSize = bitmap.BackBufferStride * bitmap.PixelHeight;