Увеличение изображения Стекло на форме окон - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь использовать стеклянную лупу на элементе управления PictureEdit (devexpress) в форме Windows. мы установили 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);

если нужно, чтобы увидеть полный пример кода. я прилагаю образец в ссылке dropbox https://www.dropbox.com/s/mogmshuiimtvhk7/ImageMagnifyingWindowsForm.zip?dl=0

1 Ответ

0 голосов
/ 31 октября 2018

PictureEdit имеет методы ViewportToImage и ImageToViewport , позволяющие преобразовывать координаты области просмотра в координаты исходного изображения и наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...