zoukankan      html  css  js  c++  java
  • 图片放大功能

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        publicpartialclass Form1 : Form
        {
            Thread thDraw;
            delegatevoid myDrawRectangel();
            myDrawRectangel mydraw;
            private Point ptBegin =new Point();
            privatebool blIsDrawRectangle =true;
    
            public Form1()
            {
                InitializeComponent();
            }
    
            privatevoid pictureBox1_Paint(object sender, PaintEventArgs e)
            {
                if (blIsDrawRectangle)
                {
                    e.Graphics.DrawRectangle(new Pen(Brushes.Black, 1), ptBegin.X, ptBegin.Y, 50, 50);
                }
            }
    
            privatevoid Form1_Load(object sender, EventArgs e)
            {
                //图片背景初始化this.pictureBox1.Image = System.Drawing.Image.FromFile(@"D:\Image\MianPic.bmp");
    
                mydraw =new myDrawRectangel(ShowDrawRectangle);
                thDraw =new Thread(Run);
                thDraw.Start();
    
            }
            privatevoid Run()
            {
                while (true)
                {
                    if (pictureBox1.Image !=null)
                    {
                        this.BeginInvoke(mydraw);
                    }
                    Thread.Sleep(50);
                }
            }
    
            privatevoid Form1_FormClosed(object sender, FormClosedEventArgs e)
            {
                if (thDraw !=null)
                {
                    thDraw.Abort();
                }
    
            }
    
            privatevoid ShowDrawRectangle()
            {
                Rectangle rec =new Rectangle(ptBegin.X * pictureBox1.Image.Size.Width /460, ptBegin.Y * pictureBox1.Image.Size.Height /350,
                                               50* pictureBox1.Image.Size.Width /460, 50* pictureBox1.Image.Size.Height /350);
                Graphics g = pictureBox2.CreateGraphics();
                g.DrawImage(pictureBox1.Image, pictureBox2.ClientRectangle, rec, GraphicsUnit.Pixel);
                g.Flush();
            }
    
            privatevoid pictureBox1_MouseLeave(object sender, EventArgs e)
            {
                blIsDrawRectangle =false;
                pictureBox1.Refresh();
    
            }
    
            privatevoid pictureBox1_MouseEnter(object sender, EventArgs e)
            {
                blIsDrawRectangle =true;
    
            }
    
            privatevoid pictureBox1_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.X -25<=0)
                {
                    ptBegin.X =0;
                }
                elseif (pictureBox1.Size.Width - e.X <=25)
                {
                    ptBegin.X = pictureBox1.Size.Width -50;
                }
                else
                {
                    ptBegin.X = e.X -25;
                }
    
                if (e.Y -25<=0)
                {
                    ptBegin.Y =0;
                }
                elseif (pictureBox1.Size.Height - e.Y <=25)
                {
                    ptBegin.Y = pictureBox1.Size.Height -50;
                }
                else
                {
                    ptBegin.Y = e.Y -25;
                }
                pictureBox1.Refresh();
    
            }
    
        }
    }
  • 相关阅读:
    PHP时间戳常用转换
    redis基本指令
    P2501 [HAOI2006]数字序列
    P2679 子串
    P2759 奇怪的函数
    P6823 「EZEC-4」zrmpaul Loves Array
    P6631 [ZJOI2020] 序列
    P2887 [USACO07NOV]Sunscreen G
    P3287 [SCOI2014]方伯伯的玉米田
    拓展欧几里得算法揭秘
  • 原文地址:https://www.cnblogs.com/jhabb/p/2289059.html
Copyright © 2011-2022 走看看