• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#设置图片透明度

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

逐个像素进行Alpha值的设置,网上其他的代码不能处理有透明背景的图片,因此要对Alpha、R、G、B均为0的透明色进行特殊处理,不做转换。

 

 1         private Bitmap SetImageOpacity(Image srcImage, int opacity)
 2         {
 3             Bitmap pic = new Bitmap(srcImage);
 4             for (int w = 0; w < pic.Width; w++)
 5             {
 6                 for (int h = 0; h < pic.Height; h++)
 7                 {
 8                     Color c = pic.GetPixel(w, h);
 9                     Color newC;
10                     if (!c.Equals(Color.FromArgb(0, 0, 0, 0)))
11                     {
12                         newC = Color.FromArgb(opacity, c);
13                     }
14                     else
15                     {
16                         newC = c;
17                     }
18                     pic.SetPixel(w, h, newC);
19                 }
20             }
21             return pic;
22         }
23 
24         private Image SetImageOpacity2(Image srcImage, int opacity)
25         {
26             Bitmap img = new Bitmap(srcImage);
27             using (Bitmap bmp = new Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
28             {
29                 using (Graphics g = Graphics.FromImage(bmp))
30                 {
31                     g.DrawImage(img, 0, 0);
32                     for (int h = 0; h <= img.Height - 1; h++)
33                     {
34                         for (int w = 0; w <= img.Width - 1; w++)
35                         {
36                             Color c = img.GetPixel(w, h);
37                             if (!c.Equals(Color.FromArgb(0, 0, 0, 0)))
38                             {
39                                 bmp.SetPixel(w, h, Color.FromArgb(opacity, c.R, c.G, c.B));
40                             }
41                             else
42                             {
43                                 bmp.SetPixel(w, h, Color.FromArgb(c.A, c.R, c.G, c.B));
44                             }
45                         }
46                     }
47                 }
48                 return (Image)bmp.Clone();
49             }
50         }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#网络编程简单实现通信小例子-1发布时间:2022-07-13
下一篇:
C#_dropdownlist_3发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap