zoukankan      html  css  js  c++  java
  • ASP.NET直接写透明GIF图像到输出流源代码

    写图片到HTTP-Response输出流是非常简单的,不过写一个透明的GIF图像到输出流就比较困难了。这个程序,在ASP.NET中使用C#语言先创建调色板,然后改变所有Alpha值到0,这时候才会透明GIF中的透明颜色。
    System.Drawing.Image _gifImage;
    _gifImage = System.Drawing.Image.FromFile(Server.MapPath("white.JPG"));
    Bitmap bm = new Bitmap(_gifImage.Width, _gifImage.Height,
    PixelFormat.Format8bppIndexed);

    // Get the palette from the bitmap
    ColorPalette pal = bm.Palette;

    // Set Alpha to 0
    for (int i = 0; i < pal.Entries.Length; i++)
    {
    Color col = pal.Entries[i];
    pal.Entries[i] = Color.FromArgb(0, col.R, col.G, col.B);
    }

    // assign palette
    bm.Palette = pal;

    //to copy the bitmap data we need to lock the source &

    //destination bits
    BitmapData src = ((Bitmap)_gifImage).LockBits(new Rectangle
    (0, 0, _gifImage.Width, _gifImage.Height), ImageLockMode.ReadOnly,
    _gifImage.PixelFormat);
    BitmapData dst = bm.LockBits(new Rectangle(0, 0, bm.Width, bm.Height),
    ImageLockMode.WriteOnly, bm.PixelFormat);

    //finished, unlock the bits
    ((Bitmap)_gifImage).UnlockBits(src);
    bm.UnlockBits(dst);

    //Set Response Type to "image/gif"
    Response.ContentType = "image/gif";

    //Writing the gif directly into the Output-Stream
    bm.Save(Response.OutputStream, ImageFormat.Gif);

    //cleaning up
    bm.Dispose();
    _gifImage.Dispose();

    //Send output stream
    Response.Flush();
  • 相关阅读:
    shell 算术运算符
    shell 关系运算符
    shell 布尔运算符
    shell逻辑运算符
    shell 字符串运算符
    shell 文件测试运算符
    shell 运算符
    shell 循环总结
    Shell echo命令
    利用WHID为隔离主机建立隐秘通道
  • 原文地址:https://www.cnblogs.com/top5/p/1593715.html
Copyright © 2011-2022 走看看