2017-01-03 56 views
1

我有一个形象在我的图片文件夹获取的图像路径转换为使用基地64串

enter image description here

,我想这个图像传递到Image对象,所以我可以将其转换为一个基地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(); 
    } 
+0

你尝试' Image.FromFile(使用Server.Mappath( “/图片/ no_image.jpg”))'? – eitamal

+0

你为什么要把它作为一个字符串传递?它的一张照片。 – BugFinder

+0

尝试使用'Server.MapPath(“〜/ Images/no_image.jpg”)'。另外:“不起作用”永远不是有用的描述,总是说它不起作用,例如发生什么错误。 –

回答

4

如果Web项目的工作,你应该使用:

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

否则,如果它是一个WinForm/WPF /控制台应用程序,使用:

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

服务器的名称空间是什么。我无法通过智能识别它。 – user1186050

+1

服务器是Controller中的一个属性,所以在控制器操作中,您可以在控制器外部使用'this.Server.MapPath',您可以使用'System.Web.HttpContext.Current.Server.MapPath' – SynerCoder