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的图片。 展开
{
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的图片。 展开
1个回答
展开全部
你可以用 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好吗?我请教一下你
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询