下载一个图片可以使用new WebClient().DownloadFile(url, path);这种形式。例如url是"http://www.abc.com/def/down.ashx?name=%5e%9flad2ssdfaf.png&md5=%3d%21%82%3c%2f%38%25如果你的服务器程序可以根据md5值而返回304状态,那么你的这个代码就需要使用try...catch,当出错时使用“本地缓存”图片。
解决方案 »
- 求指教 ,帮写个程序
- 取得datagridview选中记录,并向另一个窗口传递值
- DataGridView的使用
- 客户端和服务器的问题
- 窗体宽度高度问题
- 获取URL的附加信息
- 我写了一个底层钩子,然后把截获的信息用WM_COPYDATA发给窗体,因为DLL是C++写的,窗体是C#的,所以用Marshal.PtrToStringAnsi时会有问题?
- winform 中 panel 控件代码绑定背景图片
- 开发一个软件控制 IIS 老是提示拒绝访问 求大神指点
- 2.0后又3.0,我靠
- 用VS2013运行项目报错:正在调用的 ServicedComponent 配置不正确(请使用 regsvcs 重新注册)
- 调用子窗体,当其执行ShowDialog时未触发子窗体Load事件
PictureBox picture = new PictureBox();
picture.Image = Image.FromFile("从服务器传过来的图片地址");//picturebox绑定服务器图片
picture.Location = new Point(x,y);//绑定的位置自己设置
this.Controls.Add(picture);//winform窗体绑定PictureBox
int rowIndex = 0;
int colIndex = 0;
for (int i = 0; i < imageList1.Images.Count; i++)
{ PictureBox picBox = new PictureBox();
picBox.SizeMode = PictureBoxSizeMode.Zoom;
/// picBox.Image = imageList1.Images[i];
picBox.Image = Image.FromFile("从服务器传过来的图片地址");//picturebox绑定服务器图片
picBox.Width = (this.panel1.Width - 5 * 4) / perRowCount; //5为每2个pictureBox之间的间隔
picBox.Height = picBox.Width;
picBox.Left = 5 * (colIndex + 1) + picBox.Width * colIndex;
picBox.Top = 5 * (rowIndex + 1) + rowIndex * picBox.Height;
this.panel1.Controls.Add(picBox);
colIndex++;
if ((i + 1) % perRowCount == 0)
{
colIndex = 0;
rowIndex++;
}
以前在本地是放在 /// picBox.Image = imageList1.Images[i]这个里面的,现在我是循环得到服务器传来的地址还是把地址放到imageList中在取得阿。大神。。
int rowIndex = 0;
int colIndex = 0;
for (int i = 0; i < imageList1.Images.Count; i++)
{ PictureBox picBox = new PictureBox();
picBox.SizeMode = PictureBoxSizeMode.Zoom;
/// picBox.Image = imageList1.Images[i];
picBox.Image = Image.FromFile("从服务器传过来的图片地址");//picturebox绑定服务器图片
picBox.Width = (this.panel1.Width - 5 * 4) / perRowCount; //5为每2个pictureBox之间的间隔
picBox.Height = picBox.Width;
picBox.Left = 5 * (colIndex + 1) + picBox.Width * colIndex;
picBox.Top = 5 * (rowIndex + 1) + rowIndex * picBox.Height;
this.panel1.Controls.Add(picBox);
colIndex++;
if ((i + 1) % perRowCount == 0)
{
colIndex = 0;
rowIndex++;
}
以前在本地是放在 /// picBox.Image = imageList1.Images[i]这个里面的,现在我是循环得到服务器传来的地址还是把地址放到imageList中在取得阿。大神。。
2.使用PictureBox.Load (PictureBox.AsyncLoad)直接加载图片
http://msdn.microsoft.com/zh-cn/library/f6ak7was(v=vs.80).aspx 同步加载
http://msdn.microsoft.com/zh-cn/library/ww2xzydc(v=vs.80).aspx 异步加载
对了,不能这么,对于url地址的要用picture.ImageLocation=url
对了,不能这么,对于url地址的要用picture.ImageLocation=url
这个我知道了。但是还没懂怎么循环取服务器上的图片的地址,能举个例子不
pictureBox1.LoadAsync("http://xxoo.com/1.jpg")
就行了 哪来那么多代码..或者那本身就是html,只不过用webbrowser而已..