首先界面是下面这个样子的:
图片是下面这张:
代码如下:
private void button1_Click(object sender, EventArgs e) { OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Multiselect = false; fileDialog.Title = "请选择文件"; fileDialog.Filter = "图片文件|*.jgp;*.png;*.jpeg;*.bmp;*.gif"; //设置要选择的文件的类型 fileDialog.RestoreDirectory = true; //保存对话框是否记忆上次打开的目录 if (fileDialog.ShowDialog() == DialogResult.OK) { string file = fileDialog.FileName; //返回文件的完整路径 if (string.IsNullOrWhiteSpace(file)) { return; } Image bitmap = Image.FromFile(file); int icowidth = bitmap.Width; if (bitmap.Width > bitmap.Height) { icowidth = bitmap.Height; } icowidth = Convert.ToInt32(icowidth / 3); for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { Bitmap map = new Bitmap(icowidth, icowidth); Graphics g = Graphics.FromImage(map); //把原图的哪一部分取出来 Rectangle fromR = new Rectangle( (j - 1) * icowidth, (i - 1) * icowidth, icowidth, icowidth); //新图的哪一部分 Rectangle toR = new Rectangle( 0, 0, icowidth, icowidth); g.DrawImage(bitmap, toR, fromR, GraphicsUnit.Pixel); map.Save($"i/{i}{j}.png", ImageFormat.Png); map?.Dispose(); g?.Dispose(); GC.Collect(); } } bitmap?.Dispose(); } }
最后效果如下:
这个方法里面,是默认取最大的正方形,你也可以举一反三,加上边框或者其他效果。
留下您的脚步
最近评论