我正在尝试实现一个 dicom 查看器。对于 dicom 文件,我可以通过fo-dicom framework设置窗口宽度和窗口中心。但有时我需要为位图设置参数。我已经找到了如何做到这一点,但它不能正常工作。
private Bitmap setWinWidthAndCenter(Bitmap bmp)
{
int center = (int)vsWindowCenter.Value;
int width = (int)vsWindowWidth.Value;
var wyMin = center - 0.5 - (width - 1) / 2;
var wMax = center - 0.5 + (width - 1) / 2;
System.Drawing.Color color;
for (int i = 0; i < bmp.Width; i++)
{
for (int j = 0; j < bmp.Height; j++)
{
color = bmp.GetPixel(i, j);
if (color.R <= wyMin)
color = System.Drawing.Color.FromArgb(0, 0, 0);
else if (color.R > wMax)
color = System.Drawing.Color.FromArgb(255, 255, 255);
else
{
var val = (int)(((color.R - (center - 0.5)) / (width - 1) + 0.5) * 255);
color = System.Drawing.Color.FromArgb(val, val, val);
}
bmp.SetPixel(i, j, color);
}
}
return bmp;
}
可能有人知道出了什么问题。