首先界面是下面这个样子的:

图片是下面这张:

代码如下:
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();
}
}最后效果如下:

这个方法里面,是默认取最大的正方形,你也可以举一反三,加上边框或者其他效果。
川公网安备 51010702003150号
留下您的脚步
最近评论