我想通過加載8位灰度級位圖文件(通常爲BMP)並將其轉換爲二維字節來啓動C#的控制檯應用程序數組,其中(如你所期望的)位置x處的字節,y是像素x,y的強度。然後我有很多代碼將作爲數組的位圖做一些工作。如何在.NET控制檯應用程序中加載位圖文件
麻煩的是,我已經看到這個WPF模塊調用完成,而這些調用只是在控制檯應用程序中不可用。例如,我不想使用System.Windows.Media.Imaging
。
有沒有人有任何建議,我可以做到這一點沒有太多的麻煩?
我想通過加載8位灰度級位圖文件(通常爲BMP)並將其轉換爲二維字節來啓動C#的控制檯應用程序數組,其中(如你所期望的)位置x處的字節,y是像素x,y的強度。然後我有很多代碼將作爲數組的位圖做一些工作。如何在.NET控制檯應用程序中加載位圖文件
麻煩的是,我已經看到這個WPF模塊調用完成,而這些調用只是在控制檯應用程序中不可用。例如,我不想使用System.Windows.Media.Imaging
。
有沒有人有任何建議,我可以做到這一點沒有太多的麻煩?
您可以將System.Drawing.dll
程序集添加到項目參考中。然後你可以使用System.Drawing.Bitmap
class。
以下添加到您的代碼文件的頂部添加的命名空間System.Drawing
:當你用位圖做
Bitmap bitmap = (Bitmap)Image.FromFile(@"mypath.bmp");
:
using System.Drawing;
要加載的位圖
您可以獲取位圖中的寬度,高度和任何像素:int width = bitmap.Width;
int height = bitmap.Height;
Color pixel00 = bitmap.GetPixel(0, 0);
+1。如果您想使用底層原始數據,請使用[Bitmap.LockBits](http://msdn.microsoft.com/zh-cn/library/5ey6h79d%28v=vs.110%29.aspx)。 –
@AlexeiLevenkov正確,但對於這個OP我覺得有些過於先進。這只是一個優化。 – Virtlink
也許吧,但感覺到OP想要做什麼 - 「......將其轉換成二維字節數組......」。 –
使用'System.Drawing.Bitmap' –