2013-10-15 144 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

相关问题