代碼 復制代碼 代碼如下: //存成gif.ashx <%@ WebHandler Language="C#" Class="Gif" %> using System.IO; using Syste " /> 亚洲aaaa级特黄毛片,起碰免费公开97在线视频,国产91网站在线观看免费

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

asp.net 動態(tài)輸出透明gif圖片

查了國內(nèi)幾個中文資料都沒解決,最后是在一個英文博客上找到一個可以用的辦法。
他的解決代碼是:

代碼
復制代碼 代碼如下:
//存成gif.ashx
<%@ WebHandler Language="C#" Class="Gif" %>
using System.IO;
using System.Web;
using System.Drawing;
public class Gif : IHttpHandler {
/// <summary>
/// Returns a transparent background GIF image from the specified Bitmap.
/// </summary>
/// <param name="bitmap">The Bitmap to make transparent.</param>
/// <param name="color">The Color to make transparent.</param>
/// <returns>New Bitmap containing a transparent background gif.</returns>
public Bitmap MakeTransparentGif(Bitmap bitmap, Color color) {
byte R = color.R;
byte G = color.G;
byte B = color.B;
MemoryStream fin = new MemoryStream();
bitmap.Save(fin, System.Drawing.Imaging.ImageFormat.Gif);
MemoryStream fout = new MemoryStream((int)fin.Length);
int count = 0;
byte[] buf = new byte[256];
byte transparentIdx = 0;
fin.Seek(0, SeekOrigin.Begin);
//header
count = fin.Read(buf, 0, 13);
if ((buf[0] != 71) || (buf[1] != 73) || (buf[2] != 70)) return null; //GIF
fout.Write(buf, 0, 13);
int i = 0;
if ((buf[10] & 0x80) > 0) {
i = 1 << ((buf[10] & 7) + 1) == 256 ? 256 : 0;
}
for (; i != 0; i--) {
fin.Read(buf, 0, 3);
if ((buf[0] == R) && (buf[1] == G) && (buf[2] == B)) {
transparentIdx = (byte)(256 - i);
}
fout.Write(buf, 0, 3);
}
bool gcePresent = false;
while (true) {
fin.Read(buf, 0, 1);
fout.Write(buf, 0, 1);
if (buf[0] != 0x21) break;
fin.Read(buf, 0, 1);
fout.Write(buf, 0, 1);
gcePresent = (buf[0] == 0xf9);
while (true) {
fin.Read(buf, 0, 1);
fout.Write(buf, 0, 1);
if (buf[0] == 0) break;
count = buf[0];
if (fin.Read(buf, 0, count) != count) return null;
if (gcePresent) {
if (count == 4) {
buf[0] |= 0x01;
buf[3] = transparentIdx;
}
}
fout.Write(buf, 0, count);
}
}
while (count > 0) {
count = fin.Read(buf, 0, 1);
fout.Write(buf, 0, 1);
}
fin.Close();
fout.Flush();
return new Bitmap(fout);
}
public void ProcessRequest(HttpContext context) {
Bitmap transGif = null;
using (Bitmap bmp = new Bitmap(300, 50)) {
using (Graphics g = Graphics.FromImage(bmp)) {
g.Clear(Color.Gray);
g.DrawString("transparent gif image",
new Font("verdana bold", 14f), Brushes.LemonChiffon, 0f, 0f);
bmp.MakeTransparent(Color.Gray);
transGif = MakeTransparentGif(bmp, Color.Black);
}
}
if (transGif != null) {
context.Response.Clear();
context.Response.ContentType = "image/GIF";
transGif.Save(context.Response.OutputStream,
System.Drawing.Imaging.ImageFormat.Gif);
}
}
public bool IsReusable {get {return false;}}
}

測試html文件如下

復制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body style="background:#999">
<img src="gif.ashx" style="position:absolute" />下方的文字
</body>
</html>

AspNet技術(shù)asp.net 動態(tài)輸出透明gif圖片,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 蜜桃日本MV免费观看 | 一二三四在线观看高清电视剧 | 91se在线看片国产免费观看 | 99爱免费视频| 国产精品人妻无码久久久2022 | 成人毛片18岁女人毛片免费看 | 日本人69xxx 日本全彩黄漫无遮挡 | 动漫女生的逼 | 动漫女生的逼 | 国产成人久久婷婷精品流白浆 | 秋霞网在线伦理免费 | 久久国产香蕉视频 | 最近中文字幕无吗免费高清 | 91综合精品网站久久 | 看黄色片子 | 伊人最新网址 | 久久精品久久久久 | 国产在线精品亚洲第1页 | 花蝴蝶高清影视视频在线播放 | 国产99视频精品免费播放 | 迅雷哥在线观看高清 | 国产精品久久久久激情影院 | 亚洲中文字幕乱倫在线 | 欧美三级黄色大片 | 伊人影院综合在线 | 亚洲国产成人精品不卡青青草原 | 吻嘴胸全身好爽床大全 | 大相蕉伊人狼人久草av | 国产精品嫩草影院在线观看免费 | 国产偷国产偷亚洲高清人乐享 | 贵妃高h荡肉呻吟np杨玉环 | 97精品免费视频 | 在线视频 亚洲 | 国产偷国产偷亚洲高清app | 日日干夜夜啪蕉视频 | 九九热精品视频在线观看 | 性欧美video 性欧美sexovideotv | 美女扒开尿口让男生添动态图 | 亚洲AV色香蕉一区二区三区 | 在线精品国精品国产不卡 | 99亚偷拍自图区亚洲 |