我应该使用什么类型来使用C#保存图像?

时间:2009-12-03 23:38:42

标签: c# wpf image .net-4.0 types

我有一个名为Hero的类具有以下属性。字符串用于字母,int用于数字等。如果我要在那里保存图像,我可以使用什么?

public class Hero
{
    [Hero class's attributes (non-image related]
    public byte[] Portrait { get; set; }
    public byte[] Screenshot { get; set; }
}

纵向和屏幕截图将是.png或.jpg文件。我应该为它们使用byte []数组吗?我有点困惑。

大笑,没关系。我想出了我的错误。我不得不使用System.WINDOWS.Media.Imaging。去图。

5 个答案:

答案 0 :(得分:4)

  

我将使用它们只是在WPF表单上显示它们。

BitmapImage适用于基于XAML的应用,或者BitmapSource的其他派生类可能更适合您的需求,否则只是一个普通的Bitmap

答案 1 :(得分:2)

有一个实际的Bitmap class。我强烈建议不要使用字节数组,因为它可能会损坏,你会使图像无效。如果将其保存在Bitmap对象中,则可以直接将对象传递给PictureBox control并在屏幕上呈现它。

另外,与BMP格式不同,PNG [假设]和JPG不以相同的方式或表示存储像素格式。 JPG模型拟合[在块内](它获得一些节省并丢失信息)并存储模型的表示而不是直接颜色值。

答案 2 :(得分:1)

答案 3 :(得分:1)

你打算如何使用它们? Image类可能更合适。 Bitmap可能是另一个好人。

编辑:

然后你会想要使用BitmapImage。有关用法,另请参阅SO 94456

答案 4 :(得分:0)

取决于:

  1. 如果您需要操纵该图像(旋转,缩放等),请使用Bitmap(或其基类 - Image)。
  2. 如果您存储它只是为了将图像传递给客户端(UI),那么:
    1. 对于Web应用程序,使用字节数组,以便可以直接将其呈现给响应流。
    2. 对于WPF应用程序,请使用易于绑定的应用程序(可以是BitmapImage,请参阅related question)。