PictureBox 中的褪色颜色

Washed out colors in PictureBox

当我在 PictureBox(或者在我的例子中是 Cyotek 的 ImageBox,无关紧要)中显示特定图像时,颜色有点褪色。大多数图像显示正确,但少数图像被冲掉。

这是它的样子:

The original image

Opened in Windows Photo Viewer

Opened in my application

我尝试以 3 种不同的方式加载图像,但结果相同:

Image image = GetImage(OPEN);
imgBox.Image = image;


public Image GetImage(string path)
        {
            Image image = null;
            //image = Image.FromFile(@"D:\Visual Studio\pictures\pokemon.jpg");  // washed out colors
            try
            {
                using (FileStream file_stream = new FileStream(path, FileMode.Open, FileAccess.Read))  // washed out colors
                {
                    MemoryStream memory_stream = new MemoryStream();
                    file_stream.CopyTo(memory_stream);
                    image = Image.FromStream(memory_stream, false, false);
                    file_stream.Dispose();
                }
            }
            catch
            {
                try
                {
                    FIBITMAP picture = FreeImage.LoadEx(path);  // washed out colors
                    Bitmap bitmap = FreeImage.GetBitmap(picture);
                    image = bitmap;
                    FreeImage.Unload(picture);
                }
                catch { }
            }
            return image;
        }

有人知道这是为什么吗?也许 Windows 和 PictureBox 以不同方式处理这张图片中的某些特定标签?

您应该使用 Image.FromStream() 并为 useEmbeddedColorManagement 参数传递 true 以确保使用任何用于颜色管理的元数据。