图像放大Windows窗体上的玻璃

时间:2018-10-31 16:18:49

标签: winforms devexpress

我试图在Windows窗体的PictureEdit(devexpress)控件上使用玻璃放大镜 我们已经设置了PictureEdit.SizeMode = Squeeze。这一点很重要。在我们的应用程序中,我已经在使用“挤压大小”模式。 我正在计算鼠标位置的问题,以便将图像绘制到已放大的面板上。 这是已初始化面板的PartialMag_Paint事件的代码。其中显示了鼠标指向区域的放大图像

 int srcx = (PartailMagImageView.Location.X + PartailMagImageView.Width / 2);
 int srcy = (PartailMagImageView.Location.Y + PartailMagImageView.Height / 2);

 e.Graphics.DrawImage(this.Image
                    , new System.Drawing.Rectangle(0, 0, PartailMagImageView.Width, PartailMagImageView.Height)
                    , new System.Drawing.Rectangle(srcx - ZoomOutRate / 2, srcy - ZoomOutRate / 2, ZoomOutRate, ZoomOutRate)
                    , GraphicsUnit.Pixel);



                Pen mypen = new Pen(Color.Black, 7);
                e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                e.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                e.Graphics.DrawEllipse(mypen, 0, 0, PartailMagImageView.Width - 7, PartailMagImageView.Height - 7);

如果需要查看完整的代码示例。我将样本附加到保管箱链接中 https://www.dropbox.com/s/mogmshuiimtvhk7/ImageMagnifyingWindowsForm.zip?dl=0

1 个答案:

答案 0 :(得分:1)

PictureEdit 具有ViewportToImageImageToViewport方法,可用于将视口坐标转换为源图像坐标,反之亦然。