图片加文字、图片水印
图片加文字、图片水印 using System; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using System.IO; /// summary /// 图片位置 /// /summary public enum ImagePosition { Le 洲 ftTop, 洲 //左上 洲 LeftBottom, 洲 //左下 洲 RightTop, 洲 //右上 洲 RigthB 洲 ottom, //右下 洲 TopMi 洲 ddle, // 洲 顶部居中 B 洲 ottomMiddle, 洲 //底部居中 洲 Center 洲 //中心 洲 } /// 洲 洲 /// 水印图片的操作 洲 管理 Design by 洲 Gary Gong F 洲 rom Demeters 洲 oft // 洲 洲 public cl 洲 ass WaterIma 洲 geManage { 洲 洲 summary 洲 /// 生成一个新 洲 的水印图片制作实例 洲 洲 mmary 洲 public Wate 洲 rImageManage 洲 () { 洲 // 洲 / 洲 / TODO: Add 洲 constructor 洲 logic here 洲 // 洲 } 洲 洲 mmary 洲 /// 添加图片水印 洲 洲 summary 洲 洲 m name=sour 洲 cePicture源 洲 洲 /// 洲 重 waterImage 靛 靛 ram / 靛 靛 me=alpha透 靛 明度(0.1-1.0 数值 靛 靛 ram / 靛 靛 me=position 靛 靛 靛 param name= 靛 PicturePath 靛 靛 am // 靛 靛 回生成于指定文件夹下的水 靛 靛 s pub 靛 lic string 靛 DrawImage(st 靛 ring sourceP 靛 icture, 靛 靛 靛 靛 string water 靛 Image, 靛 靛 靛 f 靛 loat alpha, 靛 靛 靛 靛 ImagePos 靛 ition positi 靛 on, 靛 靛 靛 stri 靛 ng PicturePa 靛 th ) { 靛 / 靛 / 靛 // 推断参数是否有效 靛 // 靛 i 靛 f (sourcePic 靛 ture == stri 靛 ng.Empty || 靛 waterImage = 靛 = string.Emp 靛 ty || alpha 靛 == 0.0 || Pi 靛 cturePath == 靛 string.Empt 靛 y) 靛 { 靛 return 靛 sourcePictur 靛 e; 靛 } 靛 // 靛 // 源图片, 靛 水印图片全路径 靛 // 靛 strin 靛 g sourcePict 靛 ureName = Pi 靛 cturePath + 靛 sourcePictur 靛 e; 靛 string wate 靛 rPictureName 靛 = PicturePa 靛 th + waterIm 靛 age; 靛 string fi 靛 leSourceExte 靛 nsion = Syst 靛 em.IO.Path.G 靛 etExtension( 靛 sourcePictur 靛eName).ToLow 靛 er(); 靛 string f 靛 ileWaterExte 靛 nsion = Syst 靛 em.IO.Path.G 靛 etExtension( 靛 waterPicture 靛Name).ToLowe 靛 r(); 靛 // 靛 // 推断文件是 靛 否存在,以及类型是否正确 靛 / 靛 / 靛 if (System.I 靛 O.File.Exist 靛 s(sourcePict 靛 ureName) == 靛 false || 靛 靛 System.IO.Fi 靛 le.Exists(wa 靛 terPictureNa 靛 me) == false 靛 ||( 靛 fileS 靛 ourceExtensi 靛 on != .gif 靛 靛 fileSo 靛 urceExtensio 靛 n != .jpg 靛 靛 fileSou 靛 rceExtension 靛 != .png) 靛 || ( 靛 fileW 靛 aterExtensio 靛 n != .gif 靛 靛 fileWat 靛 erExtension 靛 靛 靛 fileWater 靛 Extension != 靛 .png) 靛 ) 靛 { 靛 靛 return so 靛 urcePicture; 靛 } 羔 羔 // 羔 // 目标图片名称 羔 及全路径 羔 // 羔 string t 羔 argetImage = 羔 sourcePictu 羔 reName.Repla 羔 ce ( System. 羔 IO.Path.GetE 羔xtension(sou 羔 rcePictureNa 羔 me),) + _ 羔 1101.jpg; 羔 羔 // 羔 // 将须要加上水印的 羔 图片装载到 Image 对象 羔 中 羔 // 羔 Image imgPh 羔 oto= Image. 羔 FromFile(sou 羔 rcePictureNa 羔 me); 羔 // 羔 // 确定其长宽 羔 / 羔 / 羔 int phWidth 羔 = imgPhoto.W 羔 idth; 羔 int phHe 羔 ight = imgPh 羔 oto.Height; 羔 羔 // 羔 // 封装 GDI+ 羔 位图,此位图由图形图像 羔 及其属性的像素数据组成。 羔 / 羔 / 羔 Bitmap bmPho 羔 to = new Bit 羔 map(phWidth, 羔 phHeight, P 羔 ixelat.F 羔ormat24bppRg 羔 b); 羔 // 羔 // 设定分 羔 辨率 羔 // 羔 bmPhoto.S 羔 etResolution 羔 (imgPhoto.Ho 羔 rizontalReso 羔 lution, imgP 羔 hoto.Vertica 羔lResolution) 羔 ; 羔 // 羔 // 定义一个绘 羔 图画面用来装载位图 羔 // 羔 Gra 羔 phics grPhot 羔 o = Graphics 羔 .FromImage(b 羔 mPhoto); 羔 // 羔 / 羔 /同样,由于水印是图片, 羔 我们也须要定义一个 Ima 羔 ge 来装载它 羔 // 羔 Image 羔 imgWatermark 羔 = new