C#添加图片水印类实现代码
2023-06-13 09:14:09 时间
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Drawing;
usingSystem.IO;
usingSystem.Drawing.Imaging;
usingSystem.Web;
usingSystem.Drawing.Drawing2D;
usingSystem.Reflection;
namespaceChen
{
publicclasswarterPic
{
///<summary>
///给图片上水印
///</summary>
///<paramname="filepath">原图片地址</param>
///<paramname="waterfile">水印图片地址</param>
///
publicvoidmarkwater(stringfilepath,stringwaterfile)
{
//gif不水印
inti=filepath.LastIndexOf(".");
stringex=filepath.Substring(i,filepath.Length-i);
if(string.Compare(ex,".gif",true)==0)
{
return;
}
stringmodifyimagepath=filepath;//修改的图像路径
intlucencypercent=25;
Imagemodifyimage=null;
Imagedrawedimage=null;
Graphicsg=null;
try
{
//建立图形对象
modifyimage=Image.FromFile(modifyimagepath,true);
drawedimage=Image.FromFile(waterfile,true);
g=Graphics.FromImage(modifyimage);
//获取要绘制图形坐标
intx=modifyimage.Width-drawedimage.Width;
inty=modifyimage.Height-drawedimage.Height;//设置颜色矩阵
float[][]matrixitems={newfloat[]{1,0,0,0,0},newfloat[]{0,1,0,0,0},newfloat[]{0,0,1,0,0},newfloat[]{0,0,0,(float)lucencypercent/100f,0},newfloat[]{0,0,0,0,1}};
ColorMatrixcolormatrix=newColorMatrix(matrixitems);
ImageAttributesimgattr=newImageAttributes();
imgattr.SetColorMatrix(colormatrix,ColorMatrixFlag.Default,ColorAdjustType.Bitmap);//绘制阴影图像
g.DrawImage(drawedimage,newRectangle(x,y,drawedimage.Width,drawedimage.Height),10,10,drawedimage.Width,drawedimage.Height,GraphicsUnit.Pixel,imgattr);//保存文件
string[]allowimagetype={".jpg",".gif",".png",".bmp",".tiff",".wmf",".ico"};
FileInfofi=newFileInfo(modifyimagepath);
ImageFormatimagetype=ImageFormat.Gif;
switch(fi.Extension.ToLower())
{
case".jpg":
imagetype=ImageFormat.Jpeg;
break;
case".gif":
imagetype=ImageFormat.Gif;
break;
case".png":
imagetype=ImageFormat.Png;
break;
case".bmp":
imagetype=ImageFormat.Bmp;
break;
case".tif":
imagetype=ImageFormat.Tiff;
break;
case".wmf":
imagetype=ImageFormat.Wmf;
break;
case".ico":
imagetype=ImageFormat.Icon;
break;
default:break;
}
MemoryStreamms=newMemoryStream();
modifyimage.Save(ms,imagetype);
byte[]imgdata=ms.ToArray();
modifyimage.Dispose();
drawedimage.Dispose();
g.Dispose();
FileStreamfs=null;
//File.Delete(modifyimagepath);
fs=newFileStream(modifyimagepath,FileMode.Create,FileAccess.Write);
if(fs!=null)
{
fs.Write(imgdata,0,imgdata.Length);
fs.Close();
}
}
finally
{
try
{
drawedimage.Dispose();
modifyimage.Dispose();
g.Dispose();
}
catch
{}
}
}
}
}
相关文章
- C#实现跑马灯效果的示例代码分享给大家
- C#版ftp方法实现类的代码
- ASP.net验证码实现代码(C#)
- C#自动创建数据库实现代码
- asp.net(c#)RSS功能实现代码
- C#添加文字水印类代码
- 在C#中调用VBScript、javascript等脚本的实现代码
- asp.net(C#)解析Json的类代码
- C#基础之数组排序、对象大小比较实现代码
- c#和Javascript操作同一json对象的实现代码
- C#的XML两种代码注释实例说明
- C#.Net动态调用webService实现思路及代码
- C#zxing二维码写入的实例代码
- 用C#实现鼠标框选效果的实现代码
- 使用C#实现在屏幕上画图效果的代码实例
- c#图片添加水印的实例代码
- C#实现大数字运算的实例代码
- c#异步读取数据库与异步更新ui的代码实现
- C#Socket连接请求超时机制实现代码分享
- 淘宝IP地址库采集器c#代码
- c#将Excel数据导入到数据库的实现代码
- c#Graphics使用方法(画圆写字代码)
- c#获取当前年的周数及当前月的天数示例代码
- c#得到本月有几周和这几周的起止时间示例代码
- C#中判断字符串是全角还是半角的实现代码
- C#连接Excel驱动与示例代码分享
- c#获得目标服务器中所有数据库名、表名、列名的实现代码
- C#listview添加combobox到单元格的实现代码
- C#模拟MSN窗体抖动的实现代码
- C#通过经纬度计算2个点之间距离的实现代码
- C#实现闹钟AlarmClock实例代码
- C#实现压缩HTML代码的方法