getclipimage.cs

来自「基于.net FrameWork的windows游戏-坦克大战游戏.用到了多线程」· CS 代码 · 共 69 行

CS
69
字号
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;


public class getClipImage
{
    /// <summary>
    /// 切割图片
    /// </summary>
    /// <param name="source">源图片</param>
    /// <param name="rows">行数</param>
    /// <param name="cols">列数</param>
    /// <param name="cutWidth">要得到的小图片的宽</param>
    /// <param name="cutHeight">要得到的小图片的高</param>
    /// <returns>返回假2维数组</returns>
    public static Image[,] getImages(Image source, int rows, int cols, int cutWidth, int cutHeight)
    {


        Image[,] img = new Image[rows, cols];
        Rectangle destRec = new Rectangle(0, 0, cutWidth, cutHeight);

        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {
                Image clip = new Bitmap(cutWidth, cutHeight);
                Graphics g = Graphics.FromImage(clip);
                Rectangle srcRec = new Rectangle(j * cutWidth, i * cutHeight, cutWidth, cutHeight);
                g.DrawImage(source, destRec, srcRec, GraphicsUnit.Pixel);
                img[i, j] = clip;
            }
        }
        return img;
    }

    /// <summary>
    /// 切割图片(自动计算小图片的宽,高)
    /// </summary>
    /// <param name="source">源图片</param>
    /// <param name="rows">行数</param>
    /// <param name="cols">列数</param>
    /// <returns>返回1维数组</returns>
    public static Image[] getImages(Image source, int rows, int cols)
    {
        Image[] img = new Image[rows * cols];

        int width = source.Width / cols;
        int height = source.Height / rows;
        Rectangle destRec = new Rectangle(0, 0, width, height);

        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {
                Image clip = new Bitmap(width, height);
                Graphics g = Graphics.FromImage(clip);
                Rectangle srcRec = new Rectangle(j * width, i * height, width, height);
                g.DrawImage(source, destRec, srcRec, GraphicsUnit.Pixel);
                img[i * cols + j] = clip;
            }
        }
        return img;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?