gpt4 book ai didi

c# - 当 PictureBox 处于 'zoom' 模式时裁剪图像的正确部分

转载 作者:行者123 更新时间:2023-12-05 03:01:00 25 4
gpt4 key购买 nike

<分区>

我有一个 PictureBox1,其 sizemode 设置为 Stretch 和 PictureBox1。 PictureBox1 包含一个图像,让我选择它的一部分,然后裁剪它并将裁剪的部分存储在 PictureBox2 中。 当 sizemode 设置为 Stretch 且图片未缩放时效果很好,但当我缩放它或将 sizemode 设置为缩放时效果不佳。

working example - sizemode set to 'stretch'

我用来裁剪部分图片的代码(original source)

try
{
float stretch1X = 1f * pictureBox1.Image.Width / pictureBox1.ClientSize.Width;
float stretch1Y = 1f * pictureBox1.Image.Height / pictureBox1.ClientSize.Height;

Point pt = new Point((int)(_mDown.X * stretch1X), (int)(_mDown.Y * stretch1Y));
Size sz = new Size((int)((_mCurr.X - _mDown.X) * stretch1X),
(int)((_mCurr.Y - _mDown.Y) * stretch1Y));



if (sz.Width > 0 && sz.Height > 0)
{
Rectangle rSrc = new Rectangle(pt, sz);
Rectangle rDest = new Rectangle(Point.Empty, sz);

Bitmap bmp = new Bitmap(sz.Width, sz.Height);
using (Graphics G = Graphics.FromImage(bmp))
G.DrawImage(pictureBox1.Image, rDest, rSrc, GraphicsUnit.Pixel);
return bmp;
}

return null;
}
catch (Exception ex)
{
throw ex;
}

如何正确计算?我怎样才能使裁剪功能以某种方式工作,以便它允许用户放大/缩小并仍然裁剪图片的正确部分?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com