c#:如何获取从网络下载到图片的属性,例如大小;并设置picBox的大小为图片大小;就是自适应 90
你好,设置 PictureBox 的 SizeMode 属性为AutoSize就可以自适应图片的大小了。。。
另外,PictureBox 控件可以直接加载网络图片的,例如:
pictureBox1.ImageLocation = @"http://imgsrc.baidu.com/forum/pic/item/a8e73d9b033b5bb54e46573333d3d539b400bcb9.jpg";
就可以直接加载网络图片了哦。
2015-07-21
try
{
string url = @"http://******.jpg";
if (!File.Exists("girl.jpg"))
{
WebClient webClient = new WebClient();
webClient.DownloadFile(url, "girl.jpg");
}
Image img = Image.FromFile("girl.jpg");
picBox.Width = img.Width;
picBox.Height = img.Height;
picBox.SizeMode = PictureBoxSizeMode.Normal;
picBox.Image = img;
}
catch { }
int width=img.Width;
int height=img.Height;
然后图片框有个属性可以让它大小自动设为图片大小,属性名称忘了,值设为auto
直接传URL就可以.
Image pic = new Image.FromStream(WebRequest.Create("http://x.com/x.jpg").GetResponse().GetResponseStream());
picturebox1.Image = pic;
可以添加一个事件,即图片加载完成后的事件,在事件中改下picBox 大小。
WPF下参考代码
//System.Windows.Controls.Image aimgblock = new System.Windows.Controls.Image();
//aimgblock 是WPF下显示图片用的自带控件的命名,WINFORM下是picBox
aimgblock.Width = 100;
aimgblock.Height = 100;
BitmapImage abtimg = new BitmapImage(new Uri(_imgUri, UriKind.Absolute)); //new BitmapImage() 系统自带的 ,用来加载网络图片的
aimgblock.Source = abtimg;
abtimg.DownloadCompleted += new EventHandler(abtimg_DownloadCompleted); //abtimg_DownloadCompleted是加载完成的处理代码
private void abtimg_DownloadCompleted(object sender, EventArgs e)
{
double imgWidth = (BitmapImage)sender).Width ;
double imgHight = ((BitmapImage)sender).Height ;
//......
}