Как найти пропорцию размера в Picturebox?

182
30 мая 2018, 15:40

Есть picturebox. С помощью мыши я выбираю прямоугольник, который буду вырезать и сохранять в файл. Изображение большое, но вмещаю я его в picturebox с помощью свойства Zoom. Понятное дело, что размеры в зуммированной и полной картинке будут отличаться. И картинка которая я вырежу не будет пропорционально реальным размерам.

 int mouseX, mouseY;
 private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            Pen pen = new Pen(Color.Red);
            rec = new Rectangle(0, mouseY - 100, pictureBox1.Width, 250);
            e.Graphics.DrawRectangle(pen, rec);
        }
  private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            mouseX = e.X;
            mouseY = e.Y;
            pictureBox1.Refresh();
        }
 private  Image Crop(Image img, Rectangle cropArea)
        {
            cropArea.Width = img.Width;
            Bitmap bmpImage = new Bitmap(img);
            return bmpImage.Clone(cropArea, bmpImage.PixelFormat);
        }

Answer 1
  1. Непонятно зачем вы рисуете изображение на PictureBox, если хотите использовать свойство SizeMode = Zoom. Для того чтобы оно работало нужно положить готовое изображение, Bitmap например, в свойство Image, на нарисованное вручную его действие не распространяется.

  2. Пропорции можно узнать из размера, а размер из свойства ClientSize или ClientRectangle, как больше нравится.

READ ALSO
Не работает конструкция if!

Не работает конструкция if!

Пишу новостной парсерБыл старый метод получения данных из RSS,попроще, он работал

196
Задание угловой скорости в box2dx

Задание угловой скорости в box2dx

Не знаю корректно ли задавать тут вопрос по конкретной библиотеке, но сильно не понимаю, поэтому пишуМожет кто сталкивался

209
Не работает макрос под SolidWorks на C#

Не работает макрос под SolidWorks на C#

Пытаюсь написать макрос на шарпе под SolidWorksНиже -- неработающий участок кода

297