从字节保存图像

时间:2017-10-09 12:20:51

标签: c#

我正在尝试创建一个API,用于将图像保存在给定位置。

以下是我的代码

Image image = Image.FromFile(@"C:\Users\abc\Desktop\img-logo.jpg");
                byte[] bytes = (byte[])(new ImageConverter()).ConvertTo(image, typeof(byte[]));
                string str = Convert.ToBase64String(bytes);
                Save_Application_Image("12004", str);

和API中的方法

  public void Save_Application_Image(string staffCode , string bytearray)
    {
        try
        {
            byte[] bytes = Convert.FromBase64String(bytearray);
            file_path = "~/uploads/" + file_name;
            FileStream file = File.Create(HttpContext.Current.Server.MapPath(file_path));
            file.Write(bytes, 0, bytes.Length);
            file.Close();
        }
        catch(Exception ex)
        {
            logger.LogError(ex);
        }
        finally
        {
        }   
    }

必须从Android应用程序调用此api,因此我将收到两个字符串参数。

它正在完美地保存文件,但文件不可读。无法预览图像文件。

这是什么方法?

1 个答案:

答案 0 :(得分:0)

我不确定ImageConverter的工作原理,但我之前使用此功能将Image转换为byte[]

Image image = Image.FromFile(@"C:\Users\abc\Desktop\img-logo.jpg");
using (var stream = new MemoryStream())
{
    image.Save(stream);
    string savedImage = Convert.ToBase64String(stream.ToArray());
    Save_Application_Image("12004", str);
}