最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 給站點(diǎn)指定位置的某種格式的圖片添加水印

 更新時(shí)間:2009年05月20日 00:30:06   作者:  
可以給站點(diǎn)指定位置的某種格式的圖片添加水印的c#實(shí)現(xiàn)代碼。
復(fù)制代碼 代碼如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
namespace Chen
{
/// <summary>
/// HandlerImageOpener 的摘要說明
/// </summary>
public class HandlerImageOpener : IHttpHandler
{
public HandlerImageOpener()
{
//
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
//
}
private string _path = "";
/// <summary>
/// 水印圖片路徑
/// </summary>
public string PngPath
{
get
{
if (_path == "")
{
_path = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["WatermarkedImagePath"]);
}
return _path;
}
}
/// <summary>
/// 為圖片加水印并寫入到Response.OutputStream
/// </summary>
/// <param name="hc">上下文對(duì)象</param>
public void GetNewBitMap(HttpContext hc)
{
// 加載原圖片
//System.Web.HttpContext.Current.Response.Write(System.Drawing.Image.FromFile(hc.Request.PhysicalPath));
//System.Web.HttpContext.Current.Response.End();
Bitmap oldBmp = new Bitmap(System.Drawing.Image.FromFile(hc.Request.PhysicalPath));
int newWidth = oldBmp.Width;
int newHeight = oldBmp.Height;
if (oldBmp != null)
{
// 綁定畫板
Graphics grap = Graphics.FromImage(oldBmp);
// 加載水印圖片
Bitmap bt = new Bitmap(PngPath);
// 水印位置控制
int pH = GetNewPoint(newHeight, bt.Height, true);
int pW = GetNewPoint(newWidth, bt.Width, false);
if (newHeight < pH * 8)
pH = pH / 2;
if (newWidth < pW)
pW = pW / 2 / 2;
int pX = newHeight - pH;
int pY = newWidth - pW - 3;
// 添加水印
grap.DrawImage(bt, pY, pX, pW, pH);
// 寫入到輸出流
oldBmp.Save(hc.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
// 控制寬高
private int GetNewPoint(int oldP, int newP, bool isW)
{
int p = 4;
if (isW)
{
p = 16;
}
if (oldP < (newP * p))
{
newP /= 2;
if (oldP < (newP * p))
{
GetNewPoint(oldP, newP, isW);
}
}
return newP;
}
#region IHttpHandler 成員
bool IHttpHandler.IsReusable
{
get { return true; }
}
void IHttpHandler.ProcessRequest(HttpContext context)
{
GetNewBitMap(context);
}
#endregion
}
}
生成.dll文件后在web.config 中配置
<!--水印圖片路徑-->
<appSettings>
<add key="WatermarkedImagePath" value="~/logo.gif"/>
</appSettings>
<!--引用處理函數(shù) path為需要加水印圖片的目錄-->
<httpHandlers>
<add type="Chen.HandlerImageOpener, Chen" verb="*" path="image/*.jpg,image/*.gif,image/*.png,image/*.bmp" />
</httpHandlers>

相關(guān)文章

  • asp.net 將設(shè)有過期策略的項(xiàng)添加到緩存中

    asp.net 將設(shè)有過期策略的項(xiàng)添加到緩存中

    調(diào)用 Insert 方法,將絕對(duì)過期時(shí)間或彈性過期時(shí)間傳遞給該方法。
    2009-04-04
  • ASP.NET中 Swagger添加JWT驗(yàn)證的流程

    ASP.NET中 Swagger添加JWT驗(yàn)證的流程

    主服務(wù)系統(tǒng)收到請(qǐng)求后會(huì)從headers中獲取“令牌”,并從“令牌”中解析出該用戶的身份權(quán)限,然后做出相應(yīng)的處理,這一系列操作都是JWT解析,下面小編給大家詳細(xì)介紹ASP.NET中 Swagger添加JWT驗(yàn)證的方法,感興趣的朋友一起看看吧
    2024-04-04
  • asp.net core新特性之TagHelper標(biāo)簽助手

    asp.net core新特性之TagHelper標(biāo)簽助手

    這篇文章主要為大家詳細(xì)介紹了asp.net core新特性之TagHelper標(biāo)簽助手的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • asp.net web頁面元素的多語言化(多國語化)實(shí)現(xiàn)分享

    asp.net web頁面元素的多語言化(多國語化)實(shí)現(xiàn)分享

    開發(fā)的一些系統(tǒng),經(jīng)常要求支持多語言(例如日文,英文等),接下來介紹如何實(shí)現(xiàn)asp.net開發(fā)中web頁面實(shí)現(xiàn)頁面元素的多語言化(多國語化)感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)有所幫助
    2013-02-02
  • Sqlite 常用函數(shù)封裝提高Codeeer的效率

    Sqlite 常用函數(shù)封裝提高Codeeer的效率

    以下是頻繁用到的Sqlite函數(shù),內(nèi)容格式相對(duì)固定,封裝一下有助于提高開發(fā)效率^_^至少提高Codeeer的效率了
    2012-12-12
  • WPF開發(fā)之利用DrawingVisual繪制高性能曲線圖

    WPF開發(fā)之利用DrawingVisual繪制高性能曲線圖

    通過WPF實(shí)現(xiàn)大數(shù)據(jù)曲線圖時(shí),如果用最基礎(chǔ)的Canvas來實(shí)現(xiàn),性能堪憂。所以本文將利用DrawingVisual繪制高性能曲線圖,感興趣的可以了解一下
    2022-02-02
  • WPF圖片按鈕的實(shí)現(xiàn)方法

    WPF圖片按鈕的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了WPF圖片按鈕的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 封裝的一個(gè)asp.net驗(yàn)證碼類

    封裝的一個(gè)asp.net驗(yàn)證碼類

    昨天在一個(gè)Q群上面群主發(fā)了一個(gè)用ASP.NET實(shí)現(xiàn)驗(yàn)證碼的demo,下載下來然后運(yùn)行正常,頁面上的img標(biāo)簽成功調(diào)用了一個(gè)一般處理程序并顯示了中文的驗(yàn)證碼圖片,雖然有點(diǎn)模糊,但是可見上面是四個(gè)中文,圖片背景為白色,背后有噪點(diǎn)線,邊框黑色。
    2010-12-12
  • Entity?Framework實(shí)體拆分多個(gè)表

    Entity?Framework實(shí)體拆分多個(gè)表

    這篇文章介紹了Entity?Framework實(shí)體拆分多個(gè)表的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 在子頁中隱藏模板頁中的div示例代碼

    在子頁中隱藏模板頁中的div示例代碼

    模板頁右邊包含了一個(gè)登陸div,想讓沒登陸的時(shí)候這個(gè)div顯示,登陸后該div隱藏,具體的實(shí)現(xiàn)如下,需要的朋友可以參考下
    2013-08-08

最新評(píng)論

淳安县| 肃南| 个旧市| 友谊县| 威信县| 徐闻县| 永宁县| 洪雅县| 乐都县| 石台县| 寿宁县| 乃东县| 武定县| 卓资县| 淳安县| 垣曲县| 大石桥市| 南陵县| 铜山县| 应用必备| 虹口区| 乐亭县| 荃湾区| 汕尾市| 惠水县| 五指山市| 南阳市| 高青县| 且末县| 宁德市| 上犹县| 嘉兴市| 德化县| 扬中市| 苍梧县| 金门县| 陕西省| 虹口区| 宾川县| 屯留县| 南阳市|