C# WPF 從 Resources 另存檔案
說明
- 白板專案上有個功能,是要從 Resources 複製一初始圖片檔案另存。
思路
- 利用
Properties.Resources.Whiteboard
找到該資源,圖片型別為System.Drawing.Bitmap
。 - 使用
File.WriteAllBytes
存檔,第一個參數是存檔路徑,第二個參數是資料來源,型別為byte[]
。所以需要另外寫一個函式BitmapToBytes
做轉換。
Code
//我的文件夾下以專案 Title 建立的資料夾
string SaveFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + this.Title + "\\";
//確保該目錄存在
if (Directory.Exists(SaveFolder) == false)
{
try { Directory.CreateDirectory(SaveFolder); }
catch { }
}
//將資源圖片另存
File.WriteAllBytes(SaveFolder + "Whiteboard.jpg", BitmapToBytes(Properties.Resources.Whiteboard));
//型別轉換
public static byte[] BitmapToBytes(System.Drawing.Bitmap Bitmap)
{
MemoryStream ms = null;
try
{
ms = new MemoryStream();
Bitmap.Save(ms, Bitmap.RawFormat);
byte[] byteImage = new Byte[ms.Length];
byteImage = ms.ToArray();
return byteImage;
}
catch (ArgumentNullException ex)
{
throw ex;
}
finally
{
ms.Close();
}
}