如何在寡妇形式的应用程序中开发像c#4.0中的photoshop那样的裁剪选择控件。
我在c#4.0中有一个可以裁剪图像的Windows窗体应用程序。首先,您必须使用鼠标绘制一个矩形来选择裁剪区域。
private Point _pt;
private Point _pt2;
private void picBoxImageProcessing_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
int ix = (int)(e.X / _zoom);
int iy = (int)(e.Y / _zoom);
//reset _pt2
_pt2 = new Point(0, 0);
_pt = new Point(ix, iy);
// pictureBox1.Invalidate();
picBoxImageProcessing.Invalidate();
}
}
private void picBoxImageProcessing_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && _selecting)
{
_selecting = false;
}
}
private void picBoxImageProcessing_Paint(object sender, PaintEventArgs e)
{
if (_selecting &&_pt.X >= 0 && _pt.Y >= 0 && _pt2.X >= 0 && _pt2.Y >= 0)
{
e.Graphics.DrawRectangle(pen, _pt.X * _zoom, _pt.Y * _zoom,
(_pt2.X - _pt.X) * _zoom, (_pt2.Y - _pt.Y) * _zoom);
}
}
private void picBoxImageProcessing_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
_selecting = true;
int ix = (int)(e.X / _zoom);
int iy = (int)(e.Y / _zoom);
_pt2 = new Point(ix, iy);
// pictureBox1.Invalidate();
picBoxImageProcessing.Invalidate();
}
}
通过鼠标拖动绘制矩形没有问题。但如果我想改变矩形的高度或宽度,那么我必须绘制一个我不想要的新矩形。我想通过修改绘制的矩形来改变矩形的高度和宽度,而不是绘制一个新的矩形。 我不想知道如何裁剪。我需要在图像上绘制一个可调整大小的矩形,就像我们在photoshop中所做的那样。
所以我需要一个裁剪选择控件,比如photoshop的裁剪控件。