我想在c#代码中多次剪切一张图片。下面的图片是我的c#论坛,我可以选择一个区域并剪切它。
我想在c#代码中多次剪切一张图片 我想重复这个过程 private void btnKes_Click(object sender,EventArgs e) { int tiklanma = 0; 如果是真的) { tiklanma ++; } pictureBox2.Refresh();
pictureBox2.Refresh();
Bitmap sourceBitmap = new Bitmap(pictureBox1.Image, pictureBox1.Width, pictureBox1.Height);
Graphics g = pictureBox2.CreateGraphics();
int x1, x2, y1, y2;
Int32.TryParse(txtX1.Text, out x1);
Int32.TryParse(txtX2.Text, out x2);
Int32.TryParse(txtY1.Text, out y1);
Int32.TryParse(txtY2.Text, out y2);
if ((x1 < x2 && y1 < y2))
{
rectCropArea = new Rectangle(x1, y1, x2 - x1, y2 - y1);
}
else if (x2 < x1 && y2 > y1)
{
rectCropArea = new Rectangle(x2, y1, x1 - x2, y2 - y1);
}
else if (x2 > x1 && y2 < y1)
{
rectCropArea = new Rectangle(x1, y2, x2 - x1, y1 - y2);
}
else
{
rectCropArea = new Rectangle(x2, y2, x1 - x2, y1 - y2);
}
pictureBox1.Refresh(); // This repositions the dashed box to new location as per coordinates entered.
int sayac = 40;
for (int i = 0; i < tiklanma; i++)
{
PictureBox pcBx = new PictureBox();
Size size = new Size(100, 100);
pcBx.Location();
pcBx.Size = size;
g.DrawImage(sourceBitmap, new Rectangle(0, 0, rectCropArea.Width, rectCropArea.Height), rectCropArea, GraphicsUnit.Pixel);
}
sourceBitmap.Dispose();
}
答案 0 :(得分:1)
使用FlowLayoutPanel
,每次在主图片上绘制新细分时,都会向布局面板添加新的PictureBox
控件。
最终你会想要对这些图片片段做其他事情,所以我也建议立即去一个自定义/用户控件,其中包含PictureBox作为一个部分。这将使以后更容易使用每个图片的按钮或上下文。
所有这些的具体细节都超出了此类问题的范围。我们需要看到更多的代码能够在我们的答案中使用适当的上下文,并且结果非常适合简单的Q&amp; A格式。所以,试试你能做什么,然后在遇到更具体的问题时回来问新问题。