方法一:
如果要載入的圖片的長寬比不是太過失衡,
1.可以改變picturebox的SizeMode屬性為 PictureBoxSizeMode.StretchImage,
2.或者Dev控制項 PictureEdit的SizeMode屬性為Zoom。(zoom:縮放;clip剪短;stretchHorizontal:縱向展開;stretchVertical:橫向展開;squeeze:壓縮)
這樣載入到picturebox的圖片會充滿整個picturebox。但是 當圖片長寬比比較大時,這個方法顯得不是太好了。可以選擇方法二。
方法二:
OpenFileDialog ofdPic= new OpenFileDialog();
ofdPic.Filter = "JPG(*.JPG;*.JPEG);gif檔案(*.GIF)|*.jpg;*.jpeg;*.gif";
ofdPic.FilterIndex = 1;
ofdPic.FileName = "";
if (ofdPic.ShowDialog() == DialogResult.OK)
{
string sPicPaht = ofdPic.FileName.ToString();
Bitmap bmPic = new Bitmap(sPicPaht);
Point ptLoction = new Point(bmPic.Size);
if (ptLoction.X > mypicbox.Size.Width || ptLoction.Y > mypicbox.Size.Height)
{
//映像框的停靠方式
//pcbPic.Dock = DockStyle.Fill;
//映像充滿映像框,並且映像維持比例
mypicbox.SizeMode = PictureBoxSizeMode.Zoom;
}
else
{
//映像在映像框置中
mypicbox.SizeMode = PictureBoxSizeMode.CenterImage;
}
//LoadAsync:非同步轉入映像
mypicbox.LoadAsync(sPicPaht);
}
3.PictureEdit詳解
NullText 無圖片或者無法顯示時展示的文字
ReadOnly 是否唯讀
showmune 是否顯示右鍵功能表列目
SizeMode 圖片顯示的格式 選擇Zoom 則為比例縮放顯示
pictureEdit 中顯示的圖片可以是資源.resx中的圖片資源檔 也可以上硬碟上的圖片檔案 也可以是網路上有url地址的圖片檔案
下面我們來看下如何?這些圖片的實現
1、 .resx中的圖片資源檔比較容易實現 直接在屬性中 Image設定 選擇資源檔即可 也可以在代碼中設定圖片的 pictureEdit1.Image= Resource1._20090119102027514; //資源類名 +圖片檔案名稱
2、顯示硬碟中的檔案 也比較簡單 直接 引入命名空間 using System.IO; 後
用代碼 pictureEdit1.Image=Image.FromFile(path); path為圖片硬碟上的絕對路徑
3、顯示網路中的圖片 你需要一個url地址 使用
Image obj = Image.FromStream(System.Net.WebRequest.Create(imagePath).GetResponse().GetResponseStream());
使用 WebRequest.Create擷取圖片的流 然後直接 pictureEdit1.Image=obj就搞定了
也可以使用 pictureEdit1.Image = new Bitmap((new System.Net.WebClient()).OpenRead(url)); WebClient來擷取圖片