C#用图片流的方式展示图片,图片地址为http开头的远程图片。怎么实现

publicpartialclassShowImg:System.Web.UI.Page{privatestringfile=string.Empty;protected... public partial class ShowImg : System.Web.UI.Page
{
private string file = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
//获取文件的地址参数
file = Request.QueryString["file"].ToString();
//以数据流的形式根据文件地址打开文件
FileStream stream = new FileStream(file, FileMode.Open);
//获取流的长度
long FileSize = stream.Length;
//定义一个二进制数组
byte[] Buffer = new byte[(int)FileSize];
//从流中读取字节块并将该数组写入缓冲区
stream.Read(Buffer, 0, (int)FileSize);
//关闭流
stream.Close();
//输出图片
Response.BinaryWrite(Buffer);
stream = null;
}
}
以上代码中,file 只能为本地图片,如何修改才能实现通过 http://www.abc.com/images/1.jpg的图片。
展开
 我来答
cocosip
2015-06-19 · TA获得超过275个赞
知道小有建树答主
回答量:588
采纳率:50%
帮助的人:323万
展开全部

你可以用 HttpWebRequest模拟请求,或者使用WebClient下载图片。 

//WebClient demo:
WebClient client = new WebClient();
            byte[] bytes = client.DownloadData("https://www.baidu.com/img/bdlogo.png");
            using (MemoryStream ms = new MemoryStream(bytes))
            {
                Image image = System.Drawing.Image.FromStream(ms);
                this.pictureBox1.Image = image;
            }
            
//HttpWebRequest写起来会麻烦一些,都是封装在一个上下文中,因为HttpWebRequest会有很多参数,如果需要的话我把代码分离出来给你
追问
尽量不要下载图片到服务器,文章中有很多图片。因为公司项目需要,我要获取的是微信文章的图片,因为他们屏蔽了不能直接引用,所以我就想通过图片流的方式实现.可以留下你Q好吗?我请教一下你
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式