如何将图像文件转换为二进制格式

时间:2013-10-15 05:38:03

标签: c#-4.0

我希望通过从系统中提供图像的路径,将任何图像文件从我的系统转换为二进制格式。转换后我想将转换后的二进制格式存储在一个文件夹中。我该怎么做?它应该是Windows窗体应用程序。

1 个答案:

答案 0 :(得分: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();
    }
}