当前位置:  编程技术>.net/c#/asp.net

c#添加图片水印类的代码举例

    来源: 互联网  发布时间:2014-08-30

    本文导语:  代码如下: //为图片添加水印 //edit by www. using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.IO; using System.Drawing.Imaging; using System.Web; using System.Drawing.Drawing2D; using System.Reflection; namespace C...

代码如下:

//为图片添加水印
//edit by www.
using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Drawing; 
using System.IO; 
using System.Drawing.Imaging; 
using System.Web; 
using System.Drawing.Drawing2D; 
using System.Reflection; 
namespace Chen 
{ 
public class warterPic 
{ 
///  
/// 给图片上水印 
///  
/// 原图片地址 
/// 水印图片地址 
/// 
public void markwater(string filepath, string waterfile) 
{ 
//gif不水印 
int i = filepath.LastIndexOf("."); 
string ex = filepath.Substring(i, filepath.Length - i); 
if (string.Compare(ex, ".gif", true) == 0) 
{ 
return; 
} 
string modifyimagepath = filepath;//修改的图像路径 
int lucencypercent = 25; 
Image modifyimage = null; 
Image drawedimage = null; 
Graphics g = null; 
try 
{ 
//建立图形对象 
modifyimage = Image.FromFile(modifyimagepath, true); 
drawedimage = Image.FromFile(waterfile, true); 
g = Graphics.FromImage(modifyimage); 
//获取要绘制图形坐标 
int x = modifyimage.Width - drawedimage.Width; 
int y = modifyimage.Height - drawedimage.Height; //设置颜色矩阵 
float[][] matrixitems ={ new float[] { 1, 0, 0, 0, 0 }, new float[] { 0, 1, 0, 0, 0 }, new float[] { 0, 0, 1, 0, 0 },
 new float[] { 0, 0, 0, (float)lucencypercent / 100f, 0 }, new float[] { 0, 0, 0, 0, 1 } }; 
ColorMatrix colormatrix = new ColorMatrix(matrixitems); 
ImageAttributes imgattr = new ImageAttributes(); 
imgattr.SetColorMatrix(colormatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); //绘制阴影图像 
g.DrawImage(drawedimage, new Rectangle(x, y, drawedimage.Width, drawedimage.Height), 10, 10, drawedimage.Width,
 drawedimage.Height, GraphicsUnit.Pixel, imgattr); //保存文件 
string[] allowimagetype ={ ".jpg", ".gif", ".png", ".bmp", ".tiff", ".wmf", ".ico" }; 
FileInfo fi = new FileInfo(modifyimagepath); 
ImageFormat imagetype = 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; 
} 
MemoryStream ms = new MemoryStream(); 
modifyimage.Save(ms, imagetype); 
byte[] imgdata = ms.ToArray(); 
modifyimage.Dispose(); 
drawedimage.Dispose(); 
g.Dispose(); 
FileStream fs = null; 
//File.Delete(modifyimagepath); 
fs = new FileStream(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# SkinEngine控件 给窗体添加皮肤的方法
  • c# 调用Surfer软件,添加引用的具体操作方法
  • C#清空添加的txt文件的实例代码
  • C#操作txt文件,进行清空添加操作的小例子
  • C# winform treeview添加右键菜单并选中节点的方法
  • c# 动态添加非标准html控件的代码
  • C#中怎样将数据表中新添加的一列数据相加,再写入另一个表中。
  • C#添加鼠标右键菜单的方法介绍
  • C#自定义控件添加右键菜单的实现代码
  • C#采用OpenXml实现给word文档添加文字
  • c# TreeView添加右键快键菜单的二个方法
  • c# DataGridView动态添加新行的二个方法
  • c# TreeView添加右键快键菜单有两种方法
  • asp.net(c#版)添加DataRow数据列到DataTable控件
  • C# DataGridView添加新行的2个方法
  • c#通过httphandler添加水印的代码
  • 给c#添加SetTimeout和SetInterval函数
  • c#数据绑定之向查询中添加参数(.Net连接外部数据库)
  • 自动为文章关键字添加链接的C#代码
  • C#采用OpenXml给Word文档添加表格
  • asp.net在图片上添加水印效果的代码示例
  • php gd库为页面添加水印实现代码
  • linux下采用shell脚本实现批量为指定文件夹下图片添加水印的方法
  • php为png/jpg/gif格式图片添加水印
  • php实现图片添加水印功能
  • php图片添加水印示例
  • c#图片添加水印的实例代码
  • java.imageIo给图片添加水印的实现代码
  • C# 添加图片水印的代码示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 push_back():在Vector最后添加一个元素
  • fedora core2下,我删除了网卡设备,然后重新添加,为什么一添加就死机啊?在命令行模式下如何用命令添加网络设备啊?
  • C++ Lists(链表) 成员 push_front():在list的头部添加一个元素
  • /etc/hosts中添加的域名信息,用哪个命令可以测试添加的内容是否正确?
  • C++ Lists(链表) 成员 push_back():在list的末尾添加一个元素
  • android中如果为listview的item添加listener,也能为item中的button添加listener
  • javascript 添加到收藏夹和书签代码示例
  • linux向压缩包中添加文件,怎么添加不进去?
  • C++ Strings(字符串) 成员 append():在字符串的末尾添加文本
  • 局域网共享上网,使用nat时在postrouting中添加masquerade规则允许往外发送,prerouting是不是也要添加规则。
  • php安装完成后如何添加mysql扩展
  • 为mysql数据库添加添加事务处理的方法
  • extjs介绍及在myeclipse中添加extjs步骤
  • linux系统下怎么添加在windows底下的盘
  • Mysql下在某一列后即表的某一位置添加新列的sql语句
  • mysql 添加索引 mysql 如何创建索引
  • 怎样添加内核启动参数???
  • linux~shell~如何取变量的值并在后面添加字符?
  • 添加用户名与密码? 散分
  • ASP.NET 页面中加添加用户控件的写法
  • 添加、删除记录和颠倒顺序,帮帮忙!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3