我知道这主要是一个图像问题而不是代码,但我会在这里试一试。
所以首先我有一个 8 位/像素的灰度图像(位图)。这意味着每个像素都表示为 1 个字节。这意味着像素值是字节值。够清楚。
但是之后...
我有一个 16 位/像素的灰度图像(位图)。这意味着每个像素都表示为 2 个字节。这对我来说很清楚。现在我创建一个 byte[] 数组来保存每个字节值。
对于 1024x1024 图像,我将有 2097152 字节。它是 1024*1024*2。
我现在的问题是,如何获取特定像素的像素值。
假设位置(X|Y)处的像素,字节为 84 和 77。如何将这两个值转换为像素值。
首先,我需要它来进行一些需要像素值的计算,然后我想更改位图的调色板,它适用于每像素 8 位的图像,但不适用于每像素 16 位的图像。
你能帮忙的话,我会很高兴。
var width = bitmap.PixelWidth;
var height = bitmap.PixelHeight;
var dpiX = bitmap.DpiX;
var dpiY = bitmap.DpiY;
byte[] pixels = new byte[
bitmap.PixelHeight * bitmap.PixelWidth *
bitmap.Format.BitsPerPixel / 8];
bitmap.CopyPixels(pixels, bitmap.PixelWidth * bitmap.Format.BitsPerPixel / 8, 0);
这就是我创建像素数组的方式。