【问题标题】:Getting an image path to use in converting to base 64 string获取用于转换为 base 64 字符串的图像路径
【发布时间】:2017-05-17 07:40:52
【问题描述】:

我的图片文件夹中有一张图片

我想将此图像传递给一个 Image 对象,以便我可以将其转换为 base 64 字符串。然后将其传递给客户端并插入到 img 元素的 src 中。

问题是我不知道如何将图像从磁盘获取到图像对象中。

Image img = Image.FromFile(@"..Images\no_image.jpg"); // doesn't work

string image = Convert.ToBase64String(imageToByteArray(img));


public byte[] imageToByteArray(Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        return ms.ToArray();
    }

【问题讨论】:

  • 你试过Image.FromFile(Server.MapPath("/Images/no_image.jpg"))吗?
  • 为什么要将它作为字符串传递?这是一张照片。
  • 尝试使用Server.MapPath("~/Images/no_image.jpg")。另外:“不起作用”从来都不是有用的描述,总是说它是如何不起作用的,例如发生了什么错误。

标签: c# .net asp.net-mvc image


【解决方案1】:

如果您从事网络项目,您应该使用:

Image.FromFile(Server.MapPath("~/Images/no_image.jpg"))

如果是 WinForm/WPF/Console 应用程序,则使用:

Image.FromFile(System.IO.Path.Combine(Environment.CurrentDirectory, "Images", "no_image.jpg"))

【讨论】:

  • Server 的命名空间是什么。我无法通过智能感知识别它。
  • Server 是 Controller 中的一个属性,因此在控制器操作中,您可以在控制器外部使用 this.Server.MapPath,您可以使用 System.Web.HttpContext.Current.Server.MapPath
猜你喜欢
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-09
  • 2011-07-20
  • 1970-01-01
  • 2018-01-22
相关资源
最近更新 更多