AvgCutImage.FmMain.CreateAvgCutRectangle C# (CSharp) Method

CreateAvgCutRectangle() private method

根据原始图像大小和要切割的数量创建切割分块合集
private CreateAvgCutRectangle ( int imgWidth, int imgHeight, int cutRowsNum, int cutCellsNum ) : List
imgWidth int 要切割的图片的宽度
imgHeight int 要切割的图片的高度
cutRowsNum int 要切割的行数
cutCellsNum int 要切割的列数
return List
        private List<Rectangle> CreateAvgCutRectangle(int imgWidth, int imgHeight, int cutRowsNum, int cutCellsNum)
        {
            List<Rectangle> lstRect = new List<Rectangle>();
            int avgWidth = imgWidth / cutCellsNum;//每块的平均宽度
            int avgHeight = imgHeight / cutRowsNum;//每块的平均高度
            int offsetX = 0, offsetY = 0;
            int cutHeight = avgHeight;
            int cutWidth = avgWidth;
            while (true)
            {
                //列分块
                if (imgHeight - offsetY < avgHeight * 2)
                    cutHeight = imgHeight - offsetY;

                offsetX = 0;
                cutWidth = avgWidth;
                while (true)
                {
                    //行分块
                    if (imgWidth - offsetX < avgWidth * 2)
                        cutWidth = imgWidth - offsetX;
                    lstRect.Add(new Rectangle(offsetX, offsetY, cutWidth, cutHeight));
                    offsetX += cutWidth;
                    if (offsetX >= imgWidth) break;
                }
                offsetY += cutHeight;
                if (offsetY >= imgHeight) break;
            }

            return lstRect;
        }