C# 添加图片水印类实现代码_asp.net教程-查字典教程网
C# 添加图片水印类实现代码
C# 添加图片水印类实现代码
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;...

复制代码 代码如下:

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

{

/// <summary>

/// 给图片上水印

/// </summary>

/// <param name="filepath">原图片地址</param>

/// <param name="waterfile">水印图片地址</param>

///

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

{ }

}

}

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类