c# 獲取圖片的縮略圖並在gridcontrol中展示

上一篇已經從網頁端獲取到了圖片,接下來把獲取到的圖片變成縮略圖在表格中展示

  • 首先準備表Dev控件gridcontrol:

   在表格中新建一列,設置ColumnEdit屬性爲PictureEdit

   

  • 獲取到的Image 需要轉換爲字節流
        /// <summary>
        /// 返回圖片的字節流byte[]
        /// </summary>
        /// <returns></returns>
        public byte[] getImageByte(Image image)
        {
           Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
           Image ReducedImage = image.GetThumbnailImage(100, 100, callb, IntPtr.Zero);//獲取縮略圖
           Bitmap bt = new Bitmap(ReducedImage);
           imgByte = ImgToByte(bt);//圖片轉換成字節流

            return imgByte;
        }
        public bool ThumbnailCallback()
        {
            return false;
        }

        public byte[] ImgToByte(Image img)
        {
            try
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    byte[] imagedata = null;
                    img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    imagedata = ms.GetBuffer();
                    return imagedata;
                }
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.ToString());
                return null;
            }
        }
  • gridcontrol設置數據源
        DataTable dtSource = new DataTable();       
        dtSource.Columns.Add(new DataColumn("name"));
        dtSource.Columns.Add("thumbnail", System.Type.GetType("System.Byte[]"));
        DataRow dr = dtSource.NewRow();
        dr["name"] = name;        
        dr["thumbnail"] = getImageByte(img);
        dtSource.Rows.Add(dr);
        gridView1.RowHeight = 120;
        gridControl1.DataSource = null;
        gridControl1.DataSource = dtSource;
  • 效果圖

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章