2013-10-15 312 views
-1

我想通過給出系統中圖像的路徑將我係統中的任何圖像文件轉換爲二進制格式。轉換後我想將轉換後的二進制格式存儲在一個文件夾中。我該怎麼做?它應該是一個Windows窗體應用程序。如何將圖像文件轉換爲二進制格式

+0

你的意思是「二進制格式」究竟是什麼意思?幾乎所有的圖像格式都是二進制格式,而不是文本... –

+0

我想他只是想將它轉換爲0和1像010010111100101010000111001 ...等 – Aravind

+0

@AravindSrinivas:是的,我可以看到這就是你認爲他想要的 - 但我'真的不太確定... –

回答

1

如果你真的只是試圖在數據庫中存儲文件,你根本不用擔心它是一個圖像。圖像文件將已經是「二進制格式」 - 您只需要存儲文件數據。有可能是在流媒體的方式這樣做的方法,但除非這些文件是巨大的,它可能只是簡單的將其裝入字節數組:

byte[] image = File.ReadAllBytes(imagePath); 

在參數化的SQL語句,然後使用image作爲參數值,例如

string sql = "INSERT INTO Foo (Path, ImageData) VALUES (@Path, @ImageData"); 
using (var connection = new SqlConnection(...)) 
{ 
    connection.Open(); 
    using (var command = new SqlCommand(sql, connection)) 
    { 
     command.Parameters.Add("@Path", SqlDbType.NVarChar).Value = imagePath; 
     command.Parameters.Add("@ImageData", SqlDbType.Image).Value = imageData; 
     command.ExecuteNonQuery(); 
    } 
} 
+0

@ Jon Skeet:在圖像存儲在一個文件夾後,我想通過數據庫檢索它在db.Is文件夾路徑這可能嗎? –

+0

@Jameskumar:我並不真正關注你的意思 - 當然你會將它存儲在* database *中。但是,是的,一旦它在數據庫中,您應該可以檢索它......如果您遇到問題,我建議您發佈一個新問題以顯示您嘗試過的方法以及問題所在。 –

+0

@Jameskumar數據庫既不包含路徑也不包含文件夾,因此,不是,您將圖像數據存儲在磁盤上並將路徑放入數據庫中,或者在加載時必須從數據庫中提取(例如SQL中的SELECT)。 – nonchip

相關問題