想用C#实现图片的放大缩小,并且可以移动,之后的图片可以进行矩形框的裁剪 5
就是移动和缩放之后是在paint事件里重绘,所以得不到那个新绘制的图像,然后截不了图,怎么处理,才可以。上代码:privatevoidpictureBox1_Paint(...
就是移动和缩放之后是在paint事件里重绘,所以得不到那个新绘制的图像,然后截不了图,怎么处理,才可以。上代码:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
if (IsLoadBmp)
{
Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
rect.X = newPoint.X;//移动之后的坐标
rect.Y = newPoint.Y;
rect.Width = (int)(rect.Width * img.scale);//缩放后的宽高
rect.Height = (int)(rect.Height * img.scale);
g.FillRectangle(Brushes.Silver, pictureBox1.ClientRectangle);
g.DrawImage(bmp, rect, new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
}
} 展开
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
if (IsLoadBmp)
{
Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
rect.X = newPoint.X;//移动之后的坐标
rect.Y = newPoint.Y;
rect.Width = (int)(rect.Width * img.scale);//缩放后的宽高
rect.Height = (int)(rect.Height * img.scale);
g.FillRectangle(Brushes.Silver, pictureBox1.ClientRectangle);
g.DrawImage(bmp, rect, new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
}
} 展开
1个回答
展开全部
移动缩放后加上这个试试
pictureBox1.Invalidate();
pictureBox1.Invalidate();
追问
我可以缩放和移动,但是之后要对这个图片进行截图操作,但是因为他每次都是在picbox1重新绘制的,所以原来那个图片没发生变化,截图还是在原图上,没有在新移动和缩放的图上截取,怎么才能解决在新的图片上截图。。。
追答
你试试这么存
Rectangle rect1 = new Rectangle(0, 0, bmp.Width, bmp.Height);
pictureBox9.DrawToBitmap(bmp,rect1 );
bmp.Save("C:/1.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询