做了好幾天,對象比較多,弄的都是亂的,最後還是一個個試出來的。 Bitmap Graphics FromImage Pen Rectangle DrawRectangle 真的混亂,看了好幾天,才明白參數之間的關係。 下載 pan.baidu.com/s/1c2CMRhY 思路:form1 就是界面 ...
做了好幾天,對象比較多,弄的都是亂的,最後還是一個個試出來的。
Bitmap
Graphics
FromImage
Pen
Rectangle
DrawRectangle
真的混亂,看了好幾天,才明白參數之間的關係。
下載 pan.baidu.com/s/1c2CMRhY
思路:form1 就是界面,全屏截圖。form2 就區域截圖
Form1代碼
int i = 0; int w = Screen.PrimaryScreen.Bounds.Width; int h = Screen.PrimaryScreen.Bounds.Height; private void button1_Click(object sender, EventArgs e) { WindowState = FormWindowState.Minimized; Thread.Sleep(100); i += 1; Bitmap b = new Bitmap(w,h); Graphics g = Graphics.FromImage(b); g.CopyFromScreen(0,0,0,0,new Size(w,h)); b.Save("C:/Users/Administrator/Desktop/截圖小王子"+i+".jpg"); WindowState = FormWindowState.Normal; Clipboard.SetImage(b); this.Cursor = Cursors.Default; } private void button3_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("C:/Users/Administrator/Desktop"); TopMost = false; this.Cursor = Cursors.Default; } private void button2_Click(object sender, EventArgs e) { this.Hide(); Form2 f2 = new Form2(); f2.Show(); }
Form2 代碼
int i = 0; Bitmap bit; Bitmap bit2; Bitmap copy; int x; int y; int xx; int yy; Pen pen = new Pen(Color.Red,2); Rectangle rect = new Rectangle(); Graphics g2; private void Form2_Load(object sender, EventArgs e) { i++; //Opacity = 0.5; WindowState = FormWindowState.Minimized; FormBorderStyle = FormBorderStyle.None; this.Cursor = Cursors.Cross; int w = Screen.PrimaryScreen.Bounds.Width; int h = Screen.PrimaryScreen.Bounds.Height; bit = new Bitmap(w, h);//獲取桌面圖 Graphics g = Graphics.FromImage(bit);//把圖畫出來 g.CopyFromScreen(0, 0, 0, 0, new Size(w, h)); pictureBox1.Image = bit; bit.Save("C:/Users/Administrator/Desktop/區域截圖" + i + ".jpg"); WindowState = FormWindowState.Maximized; } private void pictureBox1_MouseClick(object sender, MouseEventArgs e) { if(e.Button == MouseButtons.Right) { this.Hide(); Form1 f1 = new Form1(); f1.Show(); } } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { x = Math.Abs(e.X); y = Math.Abs(e.Y); } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if(e.Button == MouseButtons.Left) { xx = Math.Abs(e.X); yy = Math.Abs(e.Y); Graphics g = pictureBox1.CreateGraphics(); rect = new Rectangle(x, y, xx - x, yy - y); Refresh(); g.DrawRectangle(pen, rect); } } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { try { copy = (Bitmap)bit.Clone(); bit2 = new Bitmap(rect.Width, rect.Height); g2 = Graphics.FromImage(bit2); g2.DrawImage(copy, new Rectangle(0, 0, rect.Width, rect.Height), rect, GraphicsUnit.Pixel); pictureBox1.Image = bit2; bit2.Save("C:/Users/Administrator/Desktop/區域截圖" + i + ".jpg"); Clipboard.SetImage(bit2); }