2009-12-03 96 views
0

我有這個類叫做Hero,它有以下屬性。字符串用於字母,int用於數字等。如果我要在那裏保存圖像,我可以使用什麼?我應該使用C#保存圖像的類型是什麼?

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

+1

RTFM。提示:彙編:PresentationCore(在PresentationCore.dll中) – si618 2009-12-03 23:57:18

回答

4

我打算使用它們只是向他們展示一個WPF窗體上。

BitmapImage有利於基於XAML應用程序,或其他派生類的BitmapSource可能更適合您的需求,否則只是一個普通的老Bitmap

+0

BitmapImage位於System.Windows.Media.Imaging命名空間下的PresentationCore中。 – 2009-12-03 23:57:45

2

有一個實際的Bitmap class。我強烈建議不要使用Byte數組,因爲它可能會損壞,並且會使圖像無效。如果將它保存在Bitmap對象中,則可以直接將該對象傳遞給PictureBox control並將其呈現在屏幕上。

另外,不像BMP格式的PNG [假設]和JPG不以相同的方式或表示存儲像素格式。 JPG在[塊內]模擬擬合(在其中獲得一些節約和丟失信息)並存儲模型的表示而不是直接的顏色值。

+0

我找不到那個類。我認爲它不適用於.NET 4.0或WPF。任何幫助? – 2009-12-03 23:45:56

+0

從2.0開始它就已經在框架中,我想它可能從1開始就存在,我不能確定。 – monksy 2009-12-03 23:47:01

+0

這是在system.drawing下。 http://msdn.microsoft.com/en-us/library/system.drawing.bitmap%28VS.100%29。aspx – monksy 2009-12-03 23:47:42

1

你打算如何使用它們? Image類可能更合適。 Bitmap可能是另一個好的。

編輯:

然後,你需要使用一個BitmapImage。另請參閱SO 94456以瞭解一些用法。

+0

我將用它們僅僅在WPF表單上顯示它們。 – 2009-12-03 23:43:13

0

這取決於:

  1. 如果你需要操作的是形象(旋轉,縮放等),然後使用Bitmap(或基類 - Image)。
  2. 如果存儲它只是傳遞圖像給客戶端(UI)然後:
    1. 對於web的應用程序使用陣列的字節,因此它可以被直接呈現給響應流。
    2. 對於WPF應用程序,使用易於綁定的應用程序(可以是BitmapImage,請參閱related question)。
相關問題