我的目標是加載我的256x256像素大小的位圖,並根據實際值是否低於某個閾值爲每個像素指定白色或黑色顏色值。操作BitmapData,只有1/3被修改
問題是,只有1/3位寬的位圖具有新的像素數據,即使內部for-statement遍歷整個寬度。
unsafe
{
BitmapData bitmapData = bitmap.LockBits(new Rectangle(0,0, 256, 256), ImageLockMode.ReadWrite, bitmap.PixelFormat);
for (int j = 0; j < bitmapData.Height; j++)
{
byte* row = (byte*)bitmapData.Scan0 + (j * bitmapData.Stride);
for (int k = 0; k < bitmapData.Width; k++)
{
if (row[k] <= TresholdFilter)
row[k] = 0;
if (row[k] > 0)
row[k] = 255;
}
}
bitmap.UnlockBits(bitmapData);
}
'TresholdFilter'的價值是什麼? – erikscandola
這是一個Int32,範圍爲0-255 – Yama
在某些情況下,在你的'行[k]'中保留初始值是可能的嗎?你用另一張圖片試過了嗎? – erikscandola