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
{ }
}
}
}
}
分享到:
相关推荐
总结,C#中的文字水印和图片水印实现主要依赖于System.Drawing命名空间中的类。通过创建Graphics对象,设置文本和图像属性,以及巧妙地定位和绘制,可以在图像上轻松添加个性化的水印。提供的源代码实例则为开发者...
本示例主要关注如何使用C#和WPF(Windows Presentation Foundation)技术来实现这个功能,既可以添加图片水印,也可以添加文字水印。以下是对这个主题的详细讲解。 1. **基本概念** - **水印**:水印是添加到图像...
在C#编程中,添加和移除图片水印是一项常见的图像处理任务,主要涉及到...总之,C#结合`System.Drawing.Graphics`和`LockBits`方法,可以方便地实现图片水印的添加和去除,这在许多图像处理应用中是非常实用的技术。
本文将深入探讨如何使用C#编程语言批量添加图片水印,这是一项实用的技术,能够有效地保护你的版权或者增强品牌形象。我们将讨论以下几个核心知识点: 1. **C#编程基础**:C#是一种由微软开发的面向对象的编程语言...
本项目以C#编程语言为基础,提供了批量添加水印的功能,无论是文字水印还是图片水印,都可以轻松实现。下面我们将详细探讨这个主题。 首先,让我们理解“水印”的概念。水印是图像处理中的一个术语,指的是在原始...
本压缩包包含了一个名为“水印类WaterImage.cs”的源代码文件,这应该是一个实现了图片水印功能的C#类。下面我们将详细探讨相关的知识点。 1. **C# 类**: 在C#中,类是对象的蓝图,用于封装数据和方法。水印类...
本文将详细介绍如何使用C#编程语言来实现对图像添加文字和图片水印的功能,并提供一份功能强大的代码示例。 #### 二、关键知识点 ##### 1. 图像处理基础 - **概念**:图像处理是指通过计算机技术对图像进行分析、...
C#代码给图片添加文字或图片水印
如果你想要添加图片水印,可以使用Image类加载水印图片,然后通过DrawImage方法将其绘制到源图片上,调整透明度和位置。 这个例子仅仅是一个基础的实现,实际应用中,你可能需要考虑更多因素,如水印的透明度、旋转...
你可以根据具体需求调整代码,比如改变水印的字体、颜色、位置、大小、透明度等属性,也可以处理更复杂的水印,例如图片水印、动态调整水印大小以适应图片尺寸等。在实际项目中,可能还需要考虑性能优化,例如批量...
在本文中,我们将深入探讨如何使用C#编程语言为图片添加水印的实例代码。水印是一种常见的图像处理技术,用于在图片上添加标识、版权信息或日期等,以保护图片免受未经授权的使用。在C#中实现这一功能,我们可以利用...
以上步骤提供了一个基础的C#添加水印的实现,你可以根据具体需求进行扩展和优化。 如果你有一个名为"WaterImage.exe"的可执行文件,这可能是一个已经实现了上述功能的应用程序。运行这个程序,你可以上传图片并添加...
本示例提供了一种方法,通过C#代码在图片上添加水印,包括图片水印和文字水印。下面我们将深入探讨如何实现这个功能,并分享一些相关的知识点。 首先,我们需要了解C#中处理图像的基础知识。C#提供了System.Drawing...
在.NET开发环境中,C#是一种...总之,C#提供了一个强大且灵活的平台来实现图片水印功能。通过理解上述知识点,开发者能够创建出满足各种需求的水印解决方案,无论是简单的文字标识还是复杂的图片组合,都能轻松应对。
在C#编程中,给图片添加水印是一项常见的任务,特别是在设计、品牌保护或网站开发中。水印可以是文字、图像或者图形,用于表明所有权、版权信息或为图片增加额外的视觉元素。本篇文章将深入探讨如何使用C#来实现这一...
本篇文章将详细讲解如何利用C#实现这一功能,结合WinForm图形界面,创建一个简单的图片水印添加工具。 首先,我们需要了解C#中的图像处理库——System.Drawing命名空间。这个命名空间提供了对图像处理的各种类,如...
安装该库后,我们可以开始编写代码来实现视频加水印的功能。 1. **创建Filter Graph Manager**: 这是DirectShow的核心组件,负责管理和调度过滤器。在C#中,我们可以创建`FilterGraph`对象来表示整个图形。 2. **...
本项目提供的" C# 图片添加水印程序(含源码)"就是这样一个解决方案,它能够帮助开发者快速地为图片添加文字或图片水印,并且允许用户自定义水印的大小、透明度等参数。 首先,让我们了解一下C#中处理图像的基本...