public static OffsetImage LoadImage( string fullFileName , int startx, int starty , int width, int height ) { float scale = 1; Image raw = new Bitmap(fullFileName); if (width == 0) { width = raw.Width; } if (height == 0) { height = raw.Height; } int rltwidth = Convert.ToInt32(Math.Ceiling(width * scale)); int rltheight = Convert.ToInt32(Math.Ceiling(height * scale)); Bitmap rlt = new Bitmap(rltwidth, rltheight); Graphics g = Graphics.FromImage(rlt); PointF ul = new PointF(0, 0); PointF ur = new PointF(rltwidth, 0); PointF ll = new PointF(0, rltheight); PointF[] imgscale = new PointF[] { ul, ur, ll }; Rectangle portion = new Rectangle(startx, starty, width, height); g.DrawImage(raw, imgscale, portion, GraphicsUnit.Pixel); g.Dispose(); OffsetImage oi = OffsetImage.New(rlt); return(oi); }
public RenderForm() { int num = Math.Max(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); BufferSize = new Size(num, num); Portion = new Rectangle(0, 0, Width, Height); BufferImage = OffsetImage.New(new Bitmap(BufferSize.Width, BufferSize.Height)); UpdatePortion(00, 00, Width, Height); Load += new EventHandler(MainForm_Load); Paint += new PaintEventHandler(MainForm_Paint); Resize += new EventHandler(MainForm_Resize); KeyDown += new KeyEventHandler(RenderForm_KeyDown); KeyUp += new KeyEventHandler(RenderForm_KeyUp); MouseMove += new MouseEventHandler(RenderForm_MouseMove); MouseDown += new MouseEventHandler(RenderForm_MouseDown); MouseUp += new MouseEventHandler(RenderForm_MouseUp); MouseDoubleClick += new MouseEventHandler(RenderForm_MouseDoubleClick); }