繁体   English   中英

我应该使用哪种类型来使用C#保存图像?

[英]What type should I use for saving images using C#?

我有一个名为Hero的类,它具有以下属性。 字符串用于字母,整数用于数字,等等。如果要在其中保存图像,该怎么办?

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。 去搞清楚。

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

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

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

另外,与BMP格式不同,PNG [假定]和JPG不会以相同的方式或表示形式存储像素格式。 JPG进行模型拟合(在块内)(在其中进行部分节省并丢失信息),并存储模型的表示形式而不是直接的颜色值。

您将如何使用它们? Image类可能更合适。 位图可能是另一个不错的选择。

编辑:

然后,您将要使用BitmapImage 有关某些用法,另请参见SO 94456

这取决于:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM