在Asp.net中为图像加入水印信息并保存为Jpg类型

2025-05-29 0 72
?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51
using System.Drawing;

using System.IO;

using System.Drawing.Imaging;

private void AddTextToImg(string fileName,string text)

{

if(!File.Exists(MapPath(fileName)))

{

throw new FileNotFoundException("The file don't exist!");

}

if( text == string.Empty )

{

return;

}

//还需要判断文件类型是否为图像类型,这里就不赘述了

System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));

Bitmap bitmap = new Bitmap(image,image.Width,image.Height);

Graphics g = Graphics.FromImage(bitmap);

float fontSize = 12.0f; //字体大小

float textWidth = text.Length*fontSize; //文本的长度

//下面定义一个矩形区域,以后在这个矩形里画上白底黑字

float rectX = 0;

float rectY = 0;

float rectWidth = text.Length*(fontSize+8);

float rectHeight = fontSize+8;

//声明矩形域

RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);

Font font = new Font("宋体",fontSize); //定义字体

Brush whiteBrush = new SolidBrush(Color.White); //白笔刷,画文字用

Brush blackBrush = new SolidBrush(Color.Black); //黑笔刷,画背景用

g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);

g.DrawString(text,font,whiteBrush,textArea);

MemoryStream ms = new MemoryStream( );

//保存为Jpg类型

bitmap.Save(ms,ImageFormat.Jpeg);

//输出处理后的图像,这里为了演示方便,我将图片显示在页面中了

Response.Clear();

Response.ContentType = "image/jpeg";

Response.BinaryWrite( ms.ToArray() );

g.Dispose();

bitmap.Dispose();

image.Dispose();

}

调用时很简单,

?

1
AddTextToImg("me.jpg","程序人生http://www.manong123.com/");

一切OK了,感觉.net确实好强大,这些功能在Asp中可是奢侈品了,而在.Net环境中却能轻而易举的完成!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 在Asp.net中为图像加入水印信息并保存为Jpg类型 https://www.kuaiidc.com/102992.html

相关文章

发表评论
暂无评论