PictureBox 中的褪色颜色
Washed out colors in PictureBox
当我在 PictureBox(或者在我的例子中是 Cyotek 的 ImageBox,无关紧要)中显示特定图像时,颜色有点褪色。大多数图像显示正确,但少数图像被冲掉。
这是它的样子:
Opened in Windows Photo Viewer
我尝试以 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
以确保使用任何用于颜色管理的元数据。
当我在 PictureBox(或者在我的例子中是 Cyotek 的 ImageBox,无关紧要)中显示特定图像时,颜色有点褪色。大多数图像显示正确,但少数图像被冲掉。
这是它的样子:
Opened in Windows Photo Viewer
我尝试以 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
以确保使用任何用于颜色管理的元数据。