日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图片显示时加水印(不改变原图片)

發布時間:2024/10/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图片显示时加水印(不改变原图片) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[轉]:http://adyhpq.blog.163.com/blog/

剛剛寫了一個在顯示圖片是加水印的程序(不改變原圖片)的程序,寫出來和大家分享一下,也許有的人已經早就會了

原理很簡單,就是攔截HTTP請求,寫一個HttpHandler,首先我在web.config里面配置了圖片的根路徑:

<appSettings>

??? <add key="monitorPath" value="pictures"/>

?</appSettings>

這個pictures是放所有圖片的地方,包括下面的文件夾,從這里顯示的圖片都要加上水印.

然后寫一個類,繼承HttpHandler,這個類將自動放在AppCode下面,如下:

public class ShuiyinHandler:IHttpHandler

{

??? public bool IsReusable

??? {

??????? get { return true; }

??? }

??? public void ProcessRequest(HttpContext context)

??? {

??????? try

??????? {

??????????? //得到請求路徑

??????????? string url = context.Request.Url.AbsoluteUri.ToLower();

??????????? string monitorPath = ConfigurationManager.AppSettings["monitorPath"];

??????????? //是否包含圖片路徑

??????????? bool IsInterestUrl = url.Contains(monitorPath);

??????????? System.Drawing.Image imgSource = null;

???????????

????????????? //判斷原圖片是否存在

??????????? string physicalPath = context.Request.PhysicalPath;

??????????? if (!System.IO.File.Exists(physicalPath))

??????????? {

??????????????? context.Response.Write("圖片不存在");

??????????????? return;

??????????? }

??????????? //如果不是要加水印的文件或文件夾,就原樣輸出

??????????? if (!IsInterestUrl)

??????????? {

??????????????? imgSource = System.Drawing.Image.FromFile(physicalPath);

??????????????? imgSource.Save(context.Response.OutputStream, imgSource.RawFormat);

??????????????? imgSource.Dispose();

??????????????? return;

??????????? }

??????????? imgSource = System.Drawing.Image.FromFile(physicalPath);

??????????? //判斷是否是索引圖像格式

??????????? if (imgSource.PixelFormat == PixelFormat.Format1bppIndexed || imgSource.PixelFormat == PixelFormat.Format4bppIndexed || imgSource.PixelFormat == PixelFormat.Format8bppIndexed)

??????????? {

??????????????? //轉成位圖,這步很重要

??????????????? Bitmap bitmap = new Bitmap(imgSource.Width, imgSource.Height);

??????????????? System.Drawing.Graphics graphic = System.Drawing.Graphics.FromImage(bitmap);

??????????????? System.Drawing.Font font = new System.Drawing.Font("Arial Black", 30.0f, System.Drawing.FontStyle.Bold);

??????????????? //將原圖畫在位圖上

??????????????? graphic.DrawImage(imgSource, new Point(0, 0));

??????????????? //將水印加在位圖上

??????????????? graphic.DrawString("www.dgxyt.com", font, System.Drawing.Brushes.Red, new System.Drawing.PointF());

??????????????????? //將位圖輸入到流

??????????????? bitmap.Save(context.Response.OutputStream, ImageFormat.Jpeg);

??????????????? graphic.Dispose();

??????????????? imgSource.Dispose();

??????????????? bitmap.Dispose();

??????????? }

??????????? else

??????????? {

??????????????? //不是索引圖像格式,直接在上面加上水印

??????????????? System.Drawing.Graphics graphic = System.Drawing.Graphics.FromImage(imgSource);

??????????????? System.Drawing.Font font = new System.Drawing.Font("Arial Black", 30.0f, System.Drawing.FontStyle.Bold);

??????????????? graphic.DrawString("www.dgxyt.com", font, System.Drawing.Brushes.Red, new System.Drawing.PointF());

??????????????? imgSource.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

??????????????? imgSource.Dispose();

??????????????? graphic.Dispose();

??????????? }

??????????? //標明類型為jpg:如果不標注,IE沒有問題,但Firefox會出現亂碼

??????????? context.Response.ContentType = "image/jpeg";

??????????? context.Response.Flush();

??????????? context.Response.End();

??????? }

??????? catch

??????? {

??????????? throw;

??????? }

??? }

}

?

這樣HttpHandler寫好了,在web.config中中的HttpHandler節點下,加下如下代碼:

<httpHandlers>

????? <add verb="*" path="*.jpg,*.bmp,*.ico,*.jpeg" type="ShuiyinHandler"/>

? </httpHandlers>

?

這表示,jpg,bmp,ico,jpeg都可以加上水印,gif沒有試過,不過大家可以試下.

?

寫好之后,放在IIS上,居然不出來加水印的效果,這讓我郁悶了好久,后來終于找到原因,原來是沒有在IIS上沒有注冊以jpg,bmp,ico,jpeg為后綴的文件,IIS默認是不處理這些文件的。

?

處理方法:在網站上目錄上右擊,選擇屬性,選擇主目錄,配置,

隨便選擇列表中的一行,點擊編緝,復制執行文件的路徑,然后關閉,再點擊添加,可執行文件用粘貼就可以了,后綴名寫上.jpg,點擊確定。按此方法再添加其他后綴名。

?

這樣就實現水印效果了。

轉載于:https://www.cnblogs.com/sainaxingxing/archive/2008/09/03/1283303.html

總結

以上是生活随笔為你收集整理的图片显示时加水印(不改变原图片)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 极品粉嫩国产18尤物 | 手机看片日韩欧美 | av在线成人 | 草草影院发布页 | 国产精久久一区二区三区 | 中文字幕理论片 | 精品国产欧美一区二区三区成人 | 伊人久久亚洲综合 | 黄色工厂在线观看 | 可以看毛片的网站 | 国产精品国产三级国产专播品爱网 | 国产视频一二 | 亚洲国产精品无码观看久久 | 狠狠操天天射 | av一区在线| 午夜影视体验区 | 精品人妻一区二区三区久久夜夜嗨 | 欧美日韩一区二区视频观看 | 中国av在线播放 | 肉视频在线观看 | 性欧美xxxx| 亚洲视频网站在线观看 | 久久人人爽人人爽人人 | 天天干天天噜 | av在线播放网 | 黄在线免费看 | 午夜亚洲av永久无码精品 | 99热导航| 香蕉国产片 | 久在线播放 | 国产69精品久久久 | 日韩精品999| 国产人妖在线 | 免费在线成人av | 狂野欧美性猛交xxxx777 | 亚洲黄色大片 | 99精品视频免费观看 | 欧洲mv日韩mv国产 | 97精品视频在线观看 | 久久久久久中文字幕 | 国产99久久久久久免费看 | 人人干人人舔 | 欧美色图视频在线 | 国产日本视频 | 国产美女一区二区 | 精品一区二区三区蜜臀 | 日韩欧美中文字幕精品 | 小优视频污 | 玩日本老头很兴奋xxxx | 麻豆传媒一区二区三区 | 花房姑娘免费全集 | 亚洲免费影视 | 亚洲精品高清视频在线观看 | 精品人伦一区二区三 | 在线观看h网站 | 青青草在线观看视频 | 色噜噜综合 | 99久久精品日本一区二区免费 | 精品欧美一区二区久久久久 | 欧洲a级片 | 欧美黑人精品一区二区 | 天天宗合网 | 亚洲精品人 | 中文字幕在线视频网 | 少妇人妻一级a毛片 | 精品视频久久久久久 | 少妇太爽了在线观看 | 亚洲蜜臀av乱码久久精品蜜桃 | 波多野结衣精品视频 | 日韩福利一区二区三区 | 国产在线xxx | 日韩高清二区 | 欧美国产日韩一区 | 久久久久久久久久99 | 97性视频| 国产剧情av在线播放 | 精品国产欧美日韩 | 日韩人妻一区二区三区蜜桃视频 | 天堂色av| 色哟哟国产精品色哟哟 | 黄色资源网站 | 国产精品高潮av | 亚洲成人777| 日韩乱码一区二区三区 | 特级淫片裸体免费看 | 伦av综合一区 | 一色桃子juy758在线播放 | 亚洲一区二区三区网站 | 国产又大又硬又粗 | 成人区人妻精品一区二 | 久久丫丫 | 乱老熟女一区二区三区 | 国产破处av| 成人91免费 | 青青国产精品视频 | 欧美人与性动交g欧美精器 国产在线视频91 | 日韩av在线播放一区 | 久草久草久草 | 黄页网站在线看 |