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;