建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 网站开发 > asp.net教程 >

.net中实现类似QQ截图功能

时间:2011-01-02 13:58来源: 作者: 点击:
QQ的截图功能非常实用,只要在图片上鼠标按住一拉,就可以实现区域截图。其实用.Net比较容易实现这种方法(C#)。         首先我们确定此功能的原理: 1:mousedown事件中记录下起始位置,并且描绘一个虚线边框。 2:mouseup事件中记录
QQ的截图功能非常实用,只要在图片上鼠标按住一拉,就可以实现区域截图。其实用.Net比较容易实现这种方法(C#)。

        首先我们确定此功能的原理:

1:mousedown事件中记录下起始位置,并且描绘一个虚线边框。
2:mouseup事件中记录下结束位置
3:于是得到一个矩形区域,
4:在目标对象中,DrawImage,其中source为第一个picturebox的图像,起始点,宽度高度换算下.

首先放置两个个图片框pictureBox1和pictureBox2。

        private int _x, _y;
        Image _img
= null
;
       
private void pictureBox1_MouseDown(object
sender, MouseEventArgs e)
        {
            _img
= pictureBox1.Image.Clone() as
Image;
            _x
=
e.X;
            _y =
e.Y;

        }

       
sender, MouseEventArgs e)
        {
           
int sx = _x < e.X ?
_x : e.X;
            ?
_y : e.Y;
            = Math.Abs(_x -
e.X);
            -
e.Y);
            Bitmap bmp
Bitmap(w, h);
            Graphics g
=
Graphics.FromImage(bmp);
            g.DrawImage(pictureBox1.Image, 0, 0
, w, h), sx, sy, w, h, GraphicsUnit.Pixel);
            g.Save();
            pictureBox2.Image =
bmp;
            bmp.Save("c:\\" + DateTime.Now.Ticks.ToString() + ".jpg"
, System.Drawing.Imaging.ImageFormat.Jpeg);
        }

       
sender, MouseEventArgs e)
        {
           
if (e.Button ==
MouseButtons.Left)
            {
                Pen p 1
);
                p.DashStyle =
System.Drawing.Drawing2D.DashStyle.Dash;
                Graphics g =
Graphics.FromHwnd(pictureBox1.Handle);
                < e.X ?
_x : e.X;
                ?
_y : e.Y;
                -
e.X);
                -
e.Y);
                pictureBox1.Image =
_img;
                g.DrawRectangle(p, sx, sy, w, h);
            }
        }
int h = Math.Abs(_y
int w = Math.Abs(_x
int sy = _y < e.Y
int sx = _x
= new Pen(Color.Red,
private void pictureBox1_MouseMove(object
new Rectangle(
= new
int h = Math.Abs(_y
int w
int sy = _y < e.Y
private void pictureBox1_MouseUp(object

此段代码实现的截图功能算是比较完善,在拖拽鼠标时,会有一个虚线框方便划分区域。同时,截图可以保存为jpeg格式的图片。

(责任编辑:admin)
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片