如何按对角线裁剪图像?
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];
}
}
我想按对角线裁剪图片。我的图片尺寸为 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];
}
}