GDI+屏幕截图(二)

上一篇讲了如何写一个很low的截屏工具,这次进行稍微美化,对未选择区域的图片加上透明度,效果如下图。

 

主要用到的的代码如下:

        /// 设置图片的透明度  
        /// </summary>  
        /// <param name="image">原图</param>  
        /// <param name="alpha">透明度0-255</param>  
        /// <returns></returns>  
        private Bitmap SetPictureAlpha(Image image, int alpha)
        {
            //颜色矩阵  
            float[][] matrixItems =  
           {  
               new float[]{1,0,0,0,0},  
               new float[]{0,1,0,0,0},  
               new float[]{0,0,1,0,0},  
               new float[]{0,0,0,alpha/255f,0},  
               new float[]{0,0,0,0,1}  
           };
            ColorMatrix colorMatrix = new ColorMatrix(matrixItems);
            ImageAttributes imageAtt = new ImageAttributes();
            imageAtt.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);


            Bitmap bmp = new Bitmap(image.Width, image.Height);
            Graphics g = Graphics.FromImage(bmp);
            g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height),
                    0, 0, image.Width, image.Height, GraphicsUnit.Pixel, imageAtt);
            g.Dispose();
            return bmp;
        }


看不懂的可以参考

http://blog.csdn.net/q317379184/article/details/47978783

 

  定义Image alphaImg;

       alphaImg = SetPictureAlpha(alphaImg, 100);//透明度Img

在pictureBox1_Paint中加入        //在有透明度的区域绘制无透明度区域
               g.DrawImage(Img, rect, rect, GraphicsUnit.Pixel);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

random_2011

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值