我有以下程序将图像转换为字节数组
public byte[] ReadImageFile(string imageLocation)
{
byte[] imageData = null;
FileInfo fileInfo = new FileInfo(imageLocation);
long imageFileLength = fileInfo.Length;
FileStream fs = new FileStream(imageLocation, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
imageData = br.ReadBytes((int)imageFileLength);
return imageData;
}
如果我将值传递为"D:\\ENSource\\1.png"
,则它可以正常工作。
但如果我将值发送为“http://i.stack.imgur.com/PShuQ.png”,则会抛出异常
不支持URI格式
我怎样才能做到这一点?
答案 0 :(得分:5)
FileInfo
和FileStream
使用本地文件,没有办法通过Uri"他们中的任何一个。
要处理Uri,你可以:
HttpClient
,WebClient
)从服务器下载文件并获取字节。即Image to byte array from a url。答案 1 :(得分:1)
编辑!的 请参阅@Alexei的回复。 他抛出了一个更好的(阅读:更简单)使用webclient的解决方案。 我将离开这里的回复,以防有人想要查看更详细的查询网络服务器的例子。
我只是给了阿列克谢一个嘀嗒声(他说得很对),但只是填补了这一点。 。
您与Web服务器通信,而不是文件系统。 因此,您需要手动“请求”来自服务器的数据,然后传递生成的流。
请参阅以下代码段。 。 。 http://www.digitalcoding.com/Code-Snippets/C-Sharp/C-Code-Snippet-Download-Image-from-URL.html