C# 切分图片

来源:互联网 发布:淘宝基础题 编辑:程序博客网 时间:2024/06/06 02:43

        实际工作时用到的C# 切分图片的代码,可以将一张整图按行和列切分成固定大小的N张小图,索引从第1行开始0..n,再从第2行开始n+1...n+2n,请参考

         

 /// <summary>        ///  按行、列分割原始图片        /// </summary>        /// <param name="rowNum">行数</param>        /// <param name="colNum">列数</param>        /// <param name="srcBitmap">原始图片</param>        /// <returns>切割后的数组</returns>        public static Bitmap[] getImageCut(int rowNum, int colNum, Bitmap srcBitmap)        {            int bitmapNum = rowNum * colNum;//图片数量            Bitmap[] bitmapArr = new Bitmap[bitmapNum];            int perWidth = srcBitmap.Width / colNum; //每个图片宽度            int perHeight = srcBitmap.Height / rowNum;//每个图片高度            int srcImageX = 0;            int srcImageY = 0;            for (int rowIdx = 0; rowIdx < rowNum; rowIdx++)            {                for (int colIdx = 0; colIdx < colNum; colIdx++)                {                    int curIdx = rowIdx * colNum + colIdx;                    bitmapArr[curIdx] = new Bitmap(perWidth, perHeight);                    Graphics newBmpGraphics = Graphics.FromImage(bitmapArr[curIdx]);//新图片                    Rectangle destImageRect = new Rectangle(0, 0, perWidth, perHeight);//目标图片                    Rectangle srcImageRect = new Rectangle(srcImageX, srcImageY, perWidth, perHeight);//原始图片                    newBmpGraphics.DrawImage(srcBitmap, destImageRect, srcImageRect, GraphicsUnit.Pixel);                    srcImageX += perWidth;                }                srcImageY += perHeight;                srcImageX = 0;            }            return bitmapArr;        }

原创粉丝点击