加附图片水印的 C#方法实现代码
发布时间:2023-06-16 12:00:31 所属栏目:语言 来源:未知
导读: 代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.IO;
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.IO;
代码如下: 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(); (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐