Есть 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);
}
Непонятно зачем вы рисуете изображение на PictureBox, если хотите использовать свойство SizeMode = Zoom. Для того чтобы оно работало нужно положить готовое изображение, Bitmap например, в свойство Image, на нарисованное вручную его действие не распространяется.
Пропорции можно узнать из размера, а размер из свойства ClientSize или ClientRectangle, как больше нравится.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости