Пример #1
0
        public static PointF Convert_ONE_point_scale_for_save(this PictureBox pb, PointF Input_array_point)
        {
            var    imageRect     = pb.GetImageRectangle();
            var    image         = pb.Image;
            float  scaleX        = (float)image.Width / imageRect.Width;
            float  scaleY        = (float)image.Height / imageRect.Height;
            PointF _Array_return = new PointF();

            _Array_return.X = Scale((int)Input_array_point.X - imageRect.X, scaleX, image.Width);
            _Array_return.Y = Scale((int)Input_array_point.Y - imageRect.Y, scaleY, image.Height);
            return(_Array_return);
        }
Пример #2
0
        public static Rectangle CropImage(this PictureBox pb, int x, int y, int w, int h)
        {
            var   imageRect = pb.GetImageRectangle();
            var   image     = pb.Image;
            float scaleX    = (float)image.Width / imageRect.Width;
            float scaleY    = (float)image.Height / imageRect.Height;
            var   cropRect  = new Rectangle();

            cropRect.X      = Scale(x - imageRect.X, scaleX, image.Width);
            cropRect.Y      = Scale(y - imageRect.Y, scaleY, image.Height);
            cropRect.Width  = Scale(w, scaleX, image.Width - cropRect.X);
            cropRect.Height = Scale(h, scaleY, image.Height - cropRect.Y);
            //var result = new Bitmap(cropRect.Width, cropRect.Height, image.PixelFormat);
            //using (var g = Graphics.FromImage(result))
            //    g.DrawImage(image, new Rectangle(new Point(0, 0), cropRect.Size), cropRect, GraphicsUnit.Pixel);
            //return result;
            return(cropRect);
        }
Пример #3
0
        public static PointF[] Convert_point_scale_for_save(this PictureBox pb, PointF[] Input_array_point)
        {
            PointF[] _Array_return = new PointF[4];
            var      imageRect     = pb.GetImageRectangle();
            var      image         = pb.Image;
            float    scaleX        = (float)image.Width / imageRect.Width;
            float    scaleY        = (float)image.Height / imageRect.Height;
            PointF   Temp;

            for (int i = 0; i < 4; i++)
            {
                Temp             = new PointF();
                Temp.X           = Scale((int)Input_array_point[i].X - imageRect.X, scaleX, image.Width);
                Temp.Y           = Scale((int)Input_array_point[i].Y - imageRect.Y, scaleY, image.Height);
                _Array_return[i] = Temp;
            }

            return(_Array_return);
        }