zoukankan      html  css  js  c++  java
  • Asp.net 使用GDI+实现alpha透明效果

    使用alpha的最简单的效果.

     private void button1_Click(object sender, EventArgs e)
            {
                
    this.Refresh();

                Color startColor 
    = System.Drawing.ColorTranslator.FromHtml(this.textBox1.Text.ToLower());
                
    int alphaColor = 255;


                
    //获取起始颜色的三色
                  float redColor = startColor.R;
                
    float greenColor = startColor.G;
                
    float blueColor = startColor.B;

                
    //下面创建bitmap开始画图
                 Bitmap bm = new Bitmap(100100);
                
    for (int i = 0; i <100; i++)
                {

                    
    if (alphaColor > 255)
                    {
                        alphaColor 
    = 255;
                    }

                    
    for (int j = 0; j < 100; j++)
                    {
                        
    //通过设置每个像素点的值画图
                        bm.SetPixel(j, i, Color.FromArgb(alphaColor,(int)redColor, (int)greenColor, (int)blueColor));
                    }

                    alphaColor 
    = alphaColor - 2;
                    
                }
                
    //在窗体上显示,预览
                Graphics g = this.CreateGraphics();
                g.DrawImage(bm, 
    10150);
                bm.Dispose();
                g.Dispose();
            }


    修改下代码:

    private void button1_Click(object sender, EventArgs e)
            {
                
    this.Refresh();

                Color startColor 
    = System.Drawing.ColorTranslator.FromHtml(this.textBox1.Text.ToLower());
                
    int alphaColor = 200;


                
    //获取起始颜色的三色
                float redColor = startColor.R;
                
    float greenColor = startColor.G;
                
    float blueColor = startColor.B;

                
    //下面创建bitmap开始画图
                Bitmap bm = new Bitmap(100100);
                
    for (int i = 99; i > 0; i--)
                {

                    
    if (alphaColor > 255)
                    {
                        alphaColor 
    = 255;
                    }

                    
    for (int j = 0; j < 100; j++)
                    {
                        
    //通过设置每个像素点的值画图
                        bm.SetPixel(j, i, Color.FromArgb(alphaColor,(int)redColor, (int)greenColor, (int)blueColor));
                    }

                    
    if ( i < 55)
                    {
                        alphaColor 
    = alphaColor - 3;
                    }
                    
                }
                
    //在窗体上显示,预览
                Graphics g = this.CreateGraphics();
                g.DrawImage(bm, 
    10150);
                bm.Save(
    "c:/"+DateTime.Now.ToString("yyyymmddhhmmssfff")+".gif");
                bm.Dispose();
                g.Dispose();
            }
  • 相关阅读:
    iOS NSPredicate和正则表达式
    Linux下网络socket编程——实现服务器(select)与多个客户端通信
    多线程有什么用?
    一句话说明白什么是面向对象
    (转)简单的Malloc实现
    动态内存管理:malloc/free/new/delete/brk/mmap
    Qt绘制中国象棋棋盘
    (转)Qt中文手册 之 QApplication
    Qt常用类——QFrame类与QWidge类
    Qt常用类——QWidget
  • 原文地址:https://www.cnblogs.com/leeolevis/p/1383148.html
Copyright © 2011-2022 走看看