图像转换为灰度不能在32位计算机上运行

时间:2014-03-17 18:22:11

标签: c# image-processing .net-3.5 windows-services 32bit-64bit

我有一个Windows服务,可以将图像转换为黑色&白色和棕褐色缩略图。我的机器是64位Windows 7.我正在安装该服务的服务器是32位Windows Server 2003。

代码在我的机器以及其他64位机器上运行良好,但在服务器上它不会将图像转换为黑色和白色和棕褐色。

我已将平台目标设置为x86用于我的项目。

我在VS 2008中使用框架3.5和c#。

以下是代码。

    private Bitmap ConvertToBlackAndWhite(Bitmap loImage)
    {
        int height = loImage.Height;
        int width = loImage.Width;

        for (int yCoordinate = 0; yCoordinate < height; yCoordinate++)
        {
            for (int xCoordinate = 0; xCoordinate < width; xCoordinate++)
            {
                //Get the pixel that's at our current coordinate.
                Color color = loImage.GetPixel(xCoordinate, yCoordinate);

                //Calculate the gray to use for this pixel.
                int grayColor = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11);

                //Set the pixel to the new gray color.
                loImage.SetPixel(xCoordinate, yCoordinate, Color.FromArgb(grayColor, grayColor, grayColor));
            }
        }

        return loImage;
    }

我一直试图谷歌它已经有一段时间了,到目前为止还没有找到任何东西。

在我秃顶之前的所有帮助非常感谢:)。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我已经能够解决这个问题。如果我处理缩略图而不是图像本身,则问题就会消失。谢谢@mh为我指出。