国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

winfrom-圖片拆分成多塊

2019-11-11 01:39:03
字體:
來源:轉載
供稿:網友

先在panel容器(長寬為300)中繪制一個宮格,比如下面這樣:

PRivate void Form1_Load(object sender, EventArgs e)        {            this.InitRandomPictureBox();        }                private void InitRandomPictureBox()        {            this.pnl_Random.Controls.Clear();            for (int i = 0; i < this.ImgNumbers; i++)            {                for (int j = 0; j < this.ImgNumbers; j++)                {                    PictureBox pic = new PictureBox();                    pic.Location = new Point(j * this.SideLength, i * this.SideLength);                    pic.Size = new Size(this.SideLength, this.SideLength);                    pic.Visible = true;                    pic.BorderStyle = BorderStyle.FixedSingle;                    this.pnl_Random.Controls.Add(pic);                }            }        }
/// <summary>        /// 每個方向上要切割成的塊數        /// </summary>        private int ImgNumbers        {            get            {                return 3;            }        }        /// <summary>        /// 要切割成的正方形圖片邊長        /// </summary>        private int SideLength        {            get            {                return 300 / this.ImgNumbers; //300:panel容器大小            }        }//圖片切割:
/// <summary>        /// 將圖片切割成小圖片,圖片順序為先水平后垂直        /// </summary>        /// <param name="cx">水平方向多少個圖片</param>        ///<param name="cy">垂直方向多少個圖片</param>        public static Image[] SplitToSmallImages(this Image fromImage, int cx, int cy)        {            Image[] imgs = new Image[cx * cy];            int nWidth = fromImage.Width / cx;            int nHeight = fromImage.Height / cy;            Bitmap image = new Bitmap(nWidth, nHeight);            Graphics graphics = Graphics.FromImage(image);            for (int i = 0; i < cy; i++)            {                for (int j = 0; j < cx; j++)                {                    graphics.DrawImage(fromImage, 0, 0, new Rectangle(j * nWidth, i * nHeight, nWidth, nHeight), GraphicsUnit.Pixel);                    Image img = Image.FromHbitmap(image.GetHbitmap());                    int idx = j + i * cx;                    img.Tag = idx;                    imgs[idx] = img;                }            }            return imgs;        }將切好的圖片隨機排序然后放入到容器中:
var tmp = this._splitImages.OrderBy(p => Guid.NewGuid()).ToList();            for (int i = 0; i < tmp.Count; i++)            {                this._splitPictureBoxes[i].Image = tmp[i];            }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永德县| 太和县| 肃宁县| 南阳市| 邯郸县| 建瓯市| 岳池县| 沧州市| 和平县| 桦南县| 南溪县| 麻江县| 古交市| 桐城市| 兴海县| 息烽县| 理塘县| 确山县| 北辰区| 应用必备| 盐边县| 瑞昌市| 留坝县| 利川市| 延庆县| 祁东县| 祥云县| 新密市| 临洮县| 乐清市| 江陵县| 磐安县| 康乐县| 太白县| 云梦县| 沧源| 岑巩县| 象山县| 肥西县| 新平| 香港 |