天天看點

C# PictureEdit 加載圖檔

方法一:

    如果要加載的圖檔的長寬比不是太過失衡,

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來擷取圖檔

繼續閱讀