如何按对角线裁剪图像?

How crop image by diagonally?

我想按对角线裁剪图片。我的图片尺寸为 1000x1000。我创建空白图像并尝试向其中添加裁剪部分。但是 output.png 是空的。

Bitmap bmp1 = new Bitmap("input.png");
GraphicsPath gp = new GraphicsPath();   

Point[] P = new Point[]
{
   new Point { X = 0, Y = 0 },
   new Point { X = 1000, Y = 0 },
   new Point { X = 0, Y = 1000 }
};

gp.AddPolygon(P.ToArray());       

using (Bitmap bmp0 = (Bitmap)Bitmap.FromFile("output.png"))
using (Graphics G = Graphics.FromImage(bmp1))
{
  G.Clip = new Region(gp);   
  G.DrawImage(bmp0, 0, 0);   
  G.Save();
}
gp.Dispose();

您可以使用嵌套 for 循环。 伪代码可以是这样的:

for(int i=1; i<=1000;i++){
    for(int j=1;j<= i;i++){
        newImage[i][j] = image[i][j];
    }
}