如何从PixelFormat枚举中获得像素长度(以字节为单位)?我想使用本机方法处理图像像素,但如果不知道像素的偏移量,如何迭代图像。
代码:
let formRgbCube (image : Bitmap) =
let width = image.Width
let height = image.Height
let bitmapData = image.LockBits(Rectangle(0, 0, image.Width, image.Height), ImageLockMode.ReadOnly, image.PixelFormat)
let ptr = NativePtr.ofNativeInt<byte>(bitmapData.Scan0)
let stride = bitmapData.Stride
let rgbCube = Array3D.zeroCreate width height 3
for i = 0 to width - 1 do
for j = 0 to height - 1 do
for k = 0 to 2 do
rgbCube.[i, j, k] <- NativePtr.read<byte>(NativePtr.add ptr (stride * j + i * 3(*an example for 24ppb*) + k))
rgbCube发布于 2013-09-16 19:29:44
Image.GetPixelFormatSize(image.PixelFormat);返回指定像素格式的颜色深度(以每个像素的位数计)。-- 文档
https://stackoverflow.com/questions/18835588
复制相似问题