c#:如何获取从网络下载到图片的属性,例如大小;并设置picBox的大小为图片大小;就是自适应

2025-01-05 11:39:49
推荐回答(5个)
回答1:

你好,设置 PictureBox 的 SizeMode 属性为AutoSize就可以自适应图片的大小了。。。

另外,PictureBox 控件可以直接加载网络图片的,例如:

pictureBox1.ImageLocation = @"http://imgsrc.baidu.com/forum/pic/item/a8e73d9b033b5bb54e46573333d3d539b400bcb9.jpg";

就可以直接加载网络图片了哦。

回答2:

获取图片后,根据图片的尺寸动态调整一下picBox的尺寸就行了
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 { }

回答3:

Image img=Image.FromFile("****");
int width=img.Width;
int height=img.Height;
然后图片框有个属性可以让它大小自动设为图片大小,属性名称忘了,值设为auto

回答4:

不需要先download
直接传URL就可以.
Image pic = new Image.FromStream(WebRequest.Create("http://x.com/x.jpg").GetResponse().GetResponseStream());
picturebox1.Image = pic;

回答5:

可以添加一个事件,即图片加载完成后的事件,在事件中改下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 ;

//......

}