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();
    
            }
    
        }
    }
  • 相关阅读:
    在小米 三星 索尼 手机 :图标上显示数字
    HDU 1873 看病要排队
    简单的WINFORM窗口,体验WINFORM带来的快感
    java初探秘之推断输入的一串字符是否全为小写字母
    【Android 面试基础知识点整理】
    互联网+时代IT管理者的转型
    hdu 1233 还是畅通project (克鲁斯卡尔裸题)
    经验之谈—让你看明确block
    字典树
    设计模式之问题集锦(一)
  • 原文地址:https://www.cnblogs.com/jhabb/p/2289059.html
Copyright © 2011-2022 走看看