.net给图片加水印
ecode使用方法
ecode使用方法
Ecode使用方法
Ecode是一款网络安全工具,可以在网页内容上添加文字或图片水印。
下面介绍一下Ecode的使用方法。
一、下载和安装Ecode
首先需要在官网下载Ecode的安装包,安装完成后,打开Ecode的主界面,可以看到四个按钮:打开、添加、替换和删除。
二、新增水印
1.打开网页内容,选择要添加水印的文本或图片;
2.点击Ecode主界面上的“添加”按钮;
3.在弹出的对话框中输入文字水印或选择要添加的图片水印;
4.点击“确定”按钮,Ecode将自动给选中的文本或图片添加上水印。
三、替换水印
1.在网页内容中找到已添加的水印;
2.点击Ecode主界面上的“替换”按钮;
3.在弹出的对话框中输入新的文字水印或选择新的图片水印;
4.点击“确定”按钮,Ecode将自动替换已添加的水印。
四、删除水印
1.在网页内容中找到已添加的水印;
2.点击Ecode主界面上的“删除”按钮;
3.点击“确定”按钮,Ecode将自动删除已添加的水印。
总结:Ecode工具使用方法简便,而且适用于多种网页内容的水印添加。
使用Ecode可以保护个人或企业的信息安全,避免恶意盗取或冒用。
利用Photoshop添加水印和版权信息来保护照片
利用Photoshop添加水印和版权信息来保护照片在当今数字化的时代,照片的使用和传播变得越来越频繁。
无论是在社交媒体上分享个人照片,还是在商业用途中使用专业摄影作品,保护照片的版权已经成为摄影师和照片拥有者的重要任务。
为了确保照片的原创性和防止未经授权的使用,利用Photoshop添加水印和版权信息已经成为一种流行的方法。
本文将介绍如何使用Photoshop添加水印和版权信息来保护照片。
一、了解水印和版权信息的作用水印是指在照片上添加透明的文字或图像,以标记照片的所有权或来源。
水印的作用是防止他人未经授权地使用照片,并且可以提高照片的辨识度。
版权信息是指在照片的元数据中添加作者、版权声明和联系方式等信息,用于证明照片的真实性和所有权。
二、使用Photoshop添加水印1. 打开照片:在Photoshop中打开要添加水印的照片。
点击"文件"菜单,选择"打开",然后浏览选择照片文件。
2. 创建水印图层:在图层面板中,点击底部的"创建新图层"按钮(图标为一个方块叠加)。
这将创建一个新的空白图层。
3. 添加水印文本或图像:在新创建的图层上,使用文本工具(T键)添加水印文本,或使用绘图工具添加水印图像。
选择适合的字体、大小和颜色,并将水印放置在照片的合适位置。
4. 调整水印透明度:在图层面板中,调整水印图层的不透明度,以使水印既明显可见又不过分干扰照片的内容。
透明度可以通过拖动图层面板中的滑块来调整。
5. 合并图层并保存:点击图层面板右上角的菜单按钮,选择"图层合并可见"。
然后,点击"文件"菜单,选择"保存"或"另存为",保存添加了水印的照片。
三、使用Photoshop添加版权信息1. 打开照片:同样地,在Photoshop中打开要添加版权信息的照片。
2. 进入文件信息:点击"文件"菜单,选择"文件信息"。
如何在Photoshop中添加水印和版权信息
如何在Photoshop中添加水印和版权信息使用Photoshop软件编辑照片和设计作品已成为许多摄影师和设计师的首选。
为了保护自己的作品权益,添加水印和版权信息是必不可少的。
下面将介绍在Photoshop中如何添加水印和版权信息的简单步骤。
第一步,打开你要编辑的照片或设计作品。
在选择添加水印的位置之前,建议先调整好照片的亮度、对比度和色彩等参数,以确保最终效果符合预期。
第二步,创建一个新的图层。
在图层面板中点击“新建图层”按钮,或使用快捷键“Ctrl+Shift+N”创建一个新的图层。
将该图层命名为“水印”。
第三步,选择合适的水印样式。
水印可以是文字或图片形式。
如果选择文字水印,可以使用Photoshop内置的字体,也可以导入自定义字体。
在工具栏中选择文字工具(T),点击图片上的位置,输入你想要的文字内容,然后在选项栏中调整字体、大小、颜色等参数。
如果选择图片水印,首先需要准备好水印图片。
在图层面板中,点击“文件”菜单,选择“打开”并导入水印图片。
然后使用选择工具(V)选取并复制水印图片,返回到编辑的照片或设计作品中,粘贴水印图片至“水印”图层。
第四步,调整水印的位置和透明度。
在图层面板中选择“水印”图层,在工具栏中选择移动工具(V),点击并拖动水印至所需位置。
如果水印图片过大,可以使用“编辑”菜单中的“自由变换”功能来调整大小。
另外,在图层面板中调整“水印”图层的不透明度来控制水印的透明程度,以保持照片或设计作品的可见性。
第五步,保存并导出。
完成水印添加后,保存你的作品。
如果还需要导出为特定格式的文件,可以选择“文件”菜单中的“另存为”命令,并选择合适的文件格式和保存位置。
在添加水印的同时,我们还需要添加版权信息,以确保作品的知识产权得到保护。
可以在水印下方或作品的任意位置添加版权信息文字。
使用Photoshop软件添加水印和版权信息,可以有效防止未经授权的盗用和传播。
同时,合适的水印样式和透明度设置可以保持作品的艺术效果和观赏性,不至于对观看者产生过多干扰。
word加水印在图片上面
word加水印在图片上面在现代的办公环境中,使用Word进行文档编辑和处理是非常常见的。
然而,有时我们需要给文档添加一些额外的元素,比如水印。
水印是一种透明的背景图片或文本,可以放置在文档的页面上,以达到一定的目的,比如突出文件的特点、保护文件的版权等。
而当我们需要在Word文档上加水印时,我们可以通过一些简单的步骤来实现。
首先,打开要添加水印的Word文档。
在Word 2010或更高版本中,我们可以通过点击“插入”选项卡上的“水印”按钮来添加水印。
在Word 2007中,我们可以在“布局”选项卡上的“页面背景”组中找到“水印”按钮。
在弹出的菜单中,我们可以看到一些默认的水印选项,比如“机密”、“草稿”、“样本”等。
我们也可以选择“自定义水印”以创建自己的水印。
点击“自定义水印”选项,我们可以在弹出的对话框中进行一些设置。
首先,我们需要选择要使用的水印类型,可以是文字水印或图片水印。
如果要添加图片水印,我们可以点击“选择图片”按钮,然后浏览并选择我们想要使用的图片。
在选择图片后,我们可以通过调整透明度滑块来改变水印的透明度。
我们还可以选择水印的旋转角度,以及水印的大小和位置。
除了选择要使用的图片水印,我们还可以选择添加文字水印。
在自定义水印对话框中,我们可以点击“文本”选项卡,在文本框中输入我们想要显示的水印文字。
我们可以选择水印的字体、字号、颜色和旋转角度。
如果我们想要在页面上重复显示水印,我们可以勾选“重复”选项,并设置水印的间距和行距。
一旦我们完成了水印的设置,我们可以点击“应用”按钮来预览水印效果。
如果我们不满意水印的外观,我们可以返回对话框进行调整。
如果满意水印的效果,我们可以点击“确定”按钮来确认并应用水印到文档中。
此时,我们可以看到水印已经添加到文档的每一页上。
除了使用Word提供的内置水印功能,我们还可以使用其他方法在Word文档上加水印。
一种方法是通过插入图片或文字框来实现水印效果。
如何在Adobe Photoshop软件中添加水印和版权信息
如何在Adobe Photoshop软件中添加水印和版权信息在数字时代,图片的使用与分享变得方便而普遍,但同时也带来了盗用与侵权的问题。
为了保护原创作品的版权,给作品增加水印及版权信息是一种常见的手段。
Adobe Photoshop软件作为一款强大的图像编辑工具,为用户提供了添加水印和版权信息的功能。
本文将为大家详细介绍如何在Adobe Photoshop软件中添加水印和版权信息。
1. 打开Adobe Photoshop软件:首先,确保你已经安装了Adobe Photoshop软件,并成功打开了程序。
2. 导入图片:将你想要添加水印的图片导入到Adobe Photoshop软件中。
点击“文件”菜单,选择“打开”,然后在弹出的对话框中选择你的图片,点击“打开”即可。
3. 创建水印图层:在工具栏上方找到“图层”面板,如果没有显示,则点击“窗口”菜单选择“图层”以显示。
在“图层”面板下方的右下角有一个创建新图层的画图标,点击它,即可创建一个新的图层。
4. 添加水印文本:在新建的图层上,选择“文本工具”,点击鼠标左键,然后在图片上拖动鼠标创建文本框。
在文本框中输入你希望的水印内容,如你的名字、网站地址等。
可以根据需要调整文字的颜色、字体、大小等属性。
5. 设置水印透明度:选择刚刚创建的水印图层,在“图层”面板上找到“不透明度”滑块,可以通过调整滑块来改变水印的透明度。
一般情况下,建议将水印设置为透明度较低的状态,以确保图片内容清晰可见但不影响观看。
6. 调整水印位置:选中水印图层后,使用移动工具(通常是工具箱中的一个四箭头图标)点击并拖动水印,调整水印的位置,让它显示在合适的位置以达到你想要的效果。
7. 保存图片:完成调整后,点击“文件”菜单,选择“另存为”,在弹出的对话框中输入新的文件名和存储位置,然后点击“保存”按钮。
除了添加水印,为了进一步保护图片的版权信息,我们还可以在Adobe Photoshop中添加版权信息。
blindwatermark使用
blindwatermark使用随着数字时代的发展,图片作为一种重要的媒介,被广泛应用于各个领域。
然而,随之而来的问题是图片的盗用和侵权现象层出不穷。
为了保护自己的图片版权,许多人选择在图片上加上水印。
在这方面,有一款名为BlindWatermark的工具十分受欢迎。
本文将介绍BlindWatermark的使用方法和优势。
BlindWatermark是一款专业且易用的图片加水印工具。
它能够自动地将水印嵌入图片中,无论是对单张图片还是批量处理都非常方便。
和其他图片加水印工具相比,BlindWatermark有以下几个突出的优势。
首先,BlindWatermark具有高度的隐蔽性。
它将水印嵌入图片的像素中,水印信息不易被肉眼察觉。
这样一来,即使图片被盗用或者侵权,也能够通过水印信息来确认图片的所有权。
这种隐蔽性是其他水印工具所无法比拟的。
其次,BlindWatermark拥有强大的抗篡改能力。
它使用一种先进的数字水印算法,使得水印信息能够与图片像素紧密结合,防止被恶意篡改或删除。
即使图片经过压缩、剪裁或者格式转换,水印信息仍然能够准确地进行提取,确保原本图片的完整性和版权保护。
而且,BlindWatermark可以根据用户需求进行灵活的设置。
用户可以选择在图片的任意位置加入水印,并且可以自定义水印的大小、透明度和颜色。
同时,BlindWatermark还支持添加文字水印和图片水印,满足了用户对不同类型水印的需求。
这种灵活性使得用户能够更加自由地保护图片版权,同时又不会影响图片的美观度。
另外,BlindWatermark操作简单,适用于各种用户。
它提供了直观的用户界面,用户只需几个简单的步骤就能完成水印的添加。
此外,BlindWatermark还支持批量处理,大大提高了工作效率。
用户可以一次性选择多张图片,并进行快速的批量加水印操作。
最后,BlindWatermark还提供了水印的验证功能。
用户可以通过软件自带的验证功能,来确认图片是否被侵权或篡改。
如何插入水印
如何插入水印在许多情况下,我们需要在文档、图片或者其他类型的文件中添加水印来保护作品的版权或者增加内容的专业性。
水印是一种可见或者半透明的标记,通常包括文字、图像或者Logo等。
通过插入水印,我们可以确保文件的真实性并在需要时追溯其来源。
本文将介绍如何插入水印,在不同类型文件中使用不同的方法。
一、Microsoft Word中插入水印Microsoft Word是一个广泛使用的文字处理软件,用于创建各种类型的文档。
在Word中,我们可以轻松地插入水印。
1. 打开Microsoft Word,选择你需要插入水印的文档。
2. 在菜单栏中选择“布局”选项卡。
3. 在“布局”选项卡中,你会看到一个“水印”按钮。
点击这个按钮,你将看到一些预设的水印选项。
4. 选择一个你想要的水印样式,例如“草稿”、“保密”、“样本”等。
如果你希望自定义水印,可以选择“自定义水印”选项,并在弹出的对话框中进行设置。
5. 完成设置后,点击“应用”按钮,水印将被插入到你的文档中。
二、Adobe Photoshop中插入水印Adobe Photoshop是一款功能强大的图像处理软件,用于编辑和设计图像。
在Photoshop中,我们可以使用几种方法来插入水印。
1. 打开Adobe Photoshop,导入你要添加水印的图像。
2. 创建一个新的图层,通过点击菜单栏中的“图层”选项并选择“新建图层”。
3. 在新建的图层上,使用文本工具或者图形工具绘制你想要的水印内容。
你可以选择文字水印,然后选择字体、大小、颜色等参数;或者选择图形水印,例如Logo等。
4. 调整水印的透明度,以使其既可见又不会过于干扰原始图像。
5. 在完成水印设置后,保存你的图像即可。
三、Adobe Acrobat中插入水印Adobe Acrobat是一种用于创建、编辑和查看PDF文件的软件。
在PDF文件中插入水印可以保护文档的版权,并提供额外的信息。
1. 打开Adobe Acrobat,选择你要插入水印的PDF文件。
两个简单方法教你图片加水印
两个简单方法教你图片加水印
1、方法一:打开Word 2003,在菜单栏单击“插入”,打开的菜单指向“图片”,在下一级菜单单击“艺术字”,弹出艺术字库对话框,选择一种所需的“艺术字”样式,单击“确定”,在编辑“艺术字”文字对话框中设置字体、字号以及输入文字描述内容,单击“确定”。
2、方法二:首先要准备一张大小合适的图片(jpg格式的),接着单击菜单栏的“插入”,弹出的菜单指向“图片”,在子菜单点击“来自文件”,找到准备好的水印图片的位置,选中该图片,单击“插入”按钮,选中图片,这时出现图片工具栏,如果不显示,请右击该图片,弹出的菜单点击显示“图片”工具栏。
在图片工具栏单击“设置透明色”命令,这时鼠标变成一只画笔,鼠标单击水印背景处即可去除水印的背景色,如果要调整图片的大小,请选中并右击该图片,弹出的菜单点击“设置图片格式”命令,弹出设置图片格式对话框,切换到“大小”选项卡,在这里就可以调整图片的大小了,选中要添加的水印,鼠标右键,弹出的快捷菜单点击“复制”命令。
第 1 页共1 页。
net 给图片加水印-水印效果实现
通过HttpHandler实现图片水印效果<%@ WebHandler Language="C#" class="BookCover" %>using System;using System.Web;using System.Drawing;using System.IO;public class ImageConvert: IHttpHandler {//封面文件夹路径private const string COVERSADDR = "~/Images/BookCovers/";//数字水印路径private const string WATERMARKADDR = "~/Images/watermark.jpg";//默认图片的路径private const string DEFAULTIMAGE = "~/Images/default.jpg";public void ProcessRequest (HttpContext context) {//组合图片的路径这个是当前请求的image地址string path = context.Request.MapPath(context.Request.Path);System.Drawing.Image image;//判断请求的物理路径中,是否存在文件if (File.Exists(path)){//加载文件image = Image.FromFile(path);//加载水印图片Image watermark =Image.FromFile(context.Request.MapPath(WATERMARKADDR));//实例化画布Graphics g = Graphics.FromImage(image);//在image上绘制水印g.DrawImage(watermark, new Rectangle(image.Width - watermark.Width, image.Height - watermark.Height, watermark.Width, watermark.Height), 0, 0, watermark.Width, watermark.Height, GraphicsUnit.Pixel);//释放画布g.Dispose();//释放水印图片watermark.Dispose();}else{//加载默认图片image = Image.FromFile(context.Request.MapPath(DEFAULTIMAGE));}//设置输出格式context.Response.ContentType = "image/jpeg";//将图片存入输出流image.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);image.Dispose();context.Response.End();}public bool IsReusable {get {return false;}}}接下来需要在web.config中配置一个HttpHandlers<system.web><httpHandlers><add path="BookConvers/*.jpg" verb="*" type="ImageConvert"/></httpHandlers></system.web>上面的Handlere的意思是将所有BookConvers文件夹下的jpg格式的图片交给ImageConvert 这个Handler处理下面给一个我做的效果,大家只要稍微配置一下就可以了给大家一个水印图片。
asp.net图片操作(Drawing.Imaging;Drawing)
图片操作(Drawing.Imaging;Drawing)图片操作(Drawing.Imaging ;Drawing)1, Bitmap 控制图片属性封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。
Bitmap 是用于处理由像素数据定义的图像的对象具体使用方式,如:Bitmap bitmap = new Bitmap(); //创建GetPixel()//指定像素颜色Save()//将保存到指定位置例子:2 ,Image 为Bitmap 和 Metafile 的类提供功能的抽象基类。
Image 类型公开以下成员。
属性例如:等等,一般是为其他类提供image类型的参数,或者是属性参数。
3,Graphics 封装的一个 GDI+ 绘图图面。
Clear(Color.Transparent) 清除整个绘图面并以指定背景色填充。
DrawImage();在指定的位置并且按照指定的大小进行绘图例如:整体实例:对图的一般操作///生成缩略图///</summary>///<param name="originalImagePath">源图路径(物理路径)</param>///<param name="thumbnailPath">缩略图路径(物理路径)</param>///<param name="width">缩略图宽度</param>///<param name="height">缩略图高度</param>///<param name="mode">生成缩略图的方式</param>public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode){System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);int towidth = width;int toheight = height;int x = 0;int y = 0;int ow = originalImage.Width;int oh = originalImage.Height;switch (mode){case"HW": //指定高宽缩放(可能变形)break;case"W": //指定宽,高按比例toheight = originalImage.Height * width / originalImage.Width;break;case"H": //指定高,宽按比例towidth = originalImage.Width * height / originalImage.Height;break;case"Cut": //指定高宽裁减(不变形)if((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight){oh = originalImage.Height;ow = originalImage.Height * towidth / toheight;y = 0;x = (originalImage.Width - ow) / 2;}else{ow = originalImage.Width;oh = originalImage.Width * height / towidth;x = 0;y = (originalImage.Height - oh) / 2;}break;default:break;}//新建一个bmp图片System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);//新建一个画板System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);//设置高质量插值法g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;//设置高质量,低速度呈现平滑程度g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//清空画布并以透明背景色填充g.Clear(System.Drawing.Color.Transparent);//在指定位置并且按指定大小绘制原图片的指定部分g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight), new System.Drawing.Rectangle(x, y, ow, oh), System.Drawing.GraphicsUnit.Pixel);try{//以jpg格式保存缩略图bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);}catch (System.Exception e){throw e;}finally{originalImage.Dispose();bitmap.Dispose();g.Dispose();}}#endregion#region图片水印///<summary>///图片水印处理方法///</summary>///<param name="path">需要加载水印的图片路径(绝对路径)</param>///<param name="waterpath">水印图片(绝对路径)</param>///<param name="location">水印位置(传送正确的代码)</param>public static string ImageWatermark(string path, string waterpath, string location){string kz_name = Path.GetExtension(path);if (kz_name == ".jpg" || kz_name == ".bmp" || kz_name == ".jpeg"){DateTime time = DateTime.Now;string filename = ""+ time.Year.ToString() + time.Month.ToString() + time.Day.ToString() + time.Hour.ToString() + time.Minute.ToString() + time.Second.ToString() + lisecond.ToString();Image img = Bitmap.FromFile(path);Image waterimg = Image.FromFile(waterpath);Graphics g = Graphics.FromImage(img);ArrayList loca = GetLocation(location, img, waterimg);g.DrawImage(waterimg, new Rectangle(int.Parse(loca[0].T oString()),int.Parse(loca[1].T oString()), waterimg.Width, waterimg.Height));waterimg.Dispose();g.Dispose();string newpath = Path.GetDirectoryName(path) + filename+ kz_name;img.Save(newpath);img.Dispose();File.Copy(newpath, path, true);if (File.Exists(newpath)){File.Delete(newpath);}}return path;}///<summary>///图片水印位置处理方法///</summary>///<param name="location">水印位置</param>///<param name="img">需要添加水印的图片</param>///<param name="waterimg">水印图片</param>private static ArrayList GetLocation(string location, Image img, Image waterimg){ArrayList loca = new ArrayList();int x = 0;int y = 0;if (location == "LT"){x = 10;y = 10;}else if (location == "T"){x = img.Width / 2 - waterimg.Width / 2; y = img.Height - waterimg.Height;}else if (location == "RT"){x = img.Width - waterimg.Width;y = 10;}else if (location == "LC"){x = 10;y = img.Height / 2 - waterimg.Height / 2; }else if (location == "C"){x = img.Width / 2 - waterimg.Width / 2; y = img.Height / 2 - waterimg.Height / 2; }else if (location == "RC"){x = img.Width - waterimg.Width;y = img.Height / 2 - waterimg.Height / 2; }else if (location == "LB"){x = 10;y = img.Height - waterimg.Height;}else if (location == "B"){x = img.Width / 2 - waterimg.Width / 2; y = img.Height - waterimg.Height;}else{x = img.Width - waterimg.Width;y = img.Height - waterimg.Height;}loca.Add(x);loca.Add(y);return loca;}#endregion#region文字水印///<summary>///文字水印处理方法///</summary>///<param name="path">图片路径(绝对路径)</param>///<param name="size">字体大小</param>///<param name="letter">水印文字</param>///<param name="color">颜色</param>///<param name="location">水印位置</param>public static string LetterWatermark(string path, int size, string letter, Color color, string location){#regionstring kz_name = Path.GetExtension(path);if (kz_name == ".jpg" || kz_name == ".bmp" || kz_name == ".jpeg"){DateTime time = DateTime.Now;string filename = ""+ time.Year.ToString() + time.Month.ToString() + time.Day.ToString() + time.Hour.ToString() + time.Minute.ToString() + time.Second.ToString() + lisecond.ToString();Image img = Bitmap.FromFile(path);Graphics gs = Graphics.FromImage(img);ArrayList loca = GetLocation(location, img, size, letter.Length);Font font = new Font("宋体", size);Brush br = new SolidBrush(color);gs.DrawString(letter, font, br, float.Parse(loca[0].T oString()), float.Parse(loca[1].ToString()));gs.Dispose();string newpath = Path.GetDirectoryName(path) + filename + kz_name;img.Save(newpath);img.Dispose();File.Copy(newpath, path, true); if (File.Exists(newpath)){File.Delete(newpath);}}return path;#endregion}///<summary>///文字水印位置的方法///</summary>///<param name="location">位置代码</param>///<param name="img">图片对象</param>///<param name="width">宽(当水印类型为文字时,传过来的就是字体的大小)</param>///<param name="height">高(当水印类型为文字时,传过来的就是字符的长度)</param>private static ArrayList GetLocation(string location, Image img, int width, int height){#regionArrayList loca = new ArrayList(); //定义数组存储位置float x = 10;float y = 10;if (location == "LT"){loca.Add(x);loca.Add(y);}else if (location == "T"){x = img.Width / 2 - (width * height) / 2; loca.Add(x);loca.Add(y);}else if (location == "RT"){x = img.Width - width * height;}else if (location == "LC"){y = img.Height / 2;}else if (location == "C"){x = img.Width / 2 - (width * height) / 2; y = img.Height / 2;}else if (location == "RC"){x = img.Width - height;y = img.Height / 2;}else if (location == "LB"){y = img.Height - width - 5;}else if (location == "B"){x = img.Width / 2 - (width * height) / 2; y = img.Height - width - 5;}else{x = img.Width - width * height;y = img.Height - width - 5;}loca.Add(x);loca.Add(y);return loca;#endregion}#endregion#region调整光暗///<summary>///调整光暗///</summary>///<param name="mybm">原始图片</param>///<param name="width">原始图片的长度</param>///<param name="height">原始图片的高度</param>///<param name="val">增加或减少的光暗值</param>public Bitmap LDPic(Bitmap mybm, int width, int height, int val){Bitmap bm = new Bitmap(width, height);//初始化一个记录经过处理后的图片对象int x, y, resultR, resultG, resultB;//x、y是循环次数,后面三个是记录红绿蓝三个值的Color pixel;for (x = 0; x < width; x++){for (y = 0; y < height; y++){pixel = mybm.GetPixel(x, y);//获取当前像素的值resultR = pixel.R + val;//检查红色值会不会超出[0, 255]resultG = pixel.G + val;//检查绿色值会不会超出[0, 255]resultB = pixel.B + val;//检查蓝色值会不会超出[0, 255]bm.SetPixel(x, y, Color.FromArgb(resultR, resultG, resultB));//绘图}return bm;}#endregion#region反色处理///<summary>///反色处理///</summary>///<param name="mybm">原始图片</param>///<param name="width">原始图片的长度</param>///<param name="height">原始图片的高度</param> public Bitmap RePic(Bitmap mybm, int width, int height) {Bitmap bm = new Bitmap(width, height);//初始化一个记录处理后的图片的对象int x, y, resultR, resultG, resultB;Color pixel;for (x = 0; x < width; x++){for (y = 0; y < height; y++){pixel = mybm.GetPixel(x, y);//获取当前坐标的像素值resultR = 255 - pixel.R;//反红resultG = 255 - pixel.G;//反绿resultB = 255 - pixel.B;//反蓝bm.SetPixel(x, y, Color.FromArgb(resultR, resultG, resultB));//绘图}}return bm;}#endregion#region浮雕处理///<summary>///浮雕处理///</summary>///<param name="oldBitmap">原始图片</param>///<param name="Width">原始图片的长度</param>///<param name="Height">原始图片的高度</param> public Bitmap FD(Bitmap oldBitmap, int Width, int Height) {Bitmap newBitmap = new Bitmap(Width, Height);Color color1, color2;for (int x = 0; x < Width - 1; x++){for (int y = 0; y < Height - 1; y++){int r = 0, g = 0, b = 0;color1 = oldBitmap.GetPixel(x, y);color2 = oldBitmap.GetPixel(x + 1, y + 1); r = Math.Abs(color1.R - color2.R + 128);g = Math.Abs(color1.G - color2.G + 128);b = Math.Abs(color1.B - color2.B + 128); if (r > 255) r = 255;if (r < 0) r = 0;if (g > 255) g = 255;if (g < 0) g = 0;if (b > 255) b = 255;if (b < 0) b = 0;newBitmap.SetPixel(x, y, Color.FromArgb(r, g, b)); }}return newBitmap;}#endregion#region拉伸图片///<summary>///拉伸图片///</summary>///<param name="bmp">原始图片</param>///<param name="newW">新的宽度</param> ///<param name="newH">新的高度</param>public static Bitmap ResizeImage(Bitmap bmp, int newW, int newH){try{Bitmap bap = new Bitmap(newW, newH);Graphics g = Graphics.FromImage(bap);g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicu bic;g.DrawImage(bap, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bap.Width, bap.Height), GraphicsUnit.Pixel);g.Dispose();return bap;}catch{return null;}}#endregion#region滤色处理///<summary>///滤色处理///</summary>///<param name="mybm">原始图片</param>///<param name="width">原始图片的长度</param>///<param name="height">原始图片的高度</param>public Bitmap FilPic(Bitmap mybm, int width, int height){Bitmap bm = new Bitmap(width, height);//初始化一个记录滤色效果的图片对象int x, y;Color pixel;for (x = 0; x < width; x++){for (y = 0; y < height; y++){pixel = mybm.GetPixel(x, y);//获取当前坐标的像素值bm.SetPixel(x, y, Color.FromArgb(0, pixel.G, pixel.B));//绘图}}return bm;}#endregion#region左右翻转///<summary>///左右翻转///</summary>///<param name="mybm">原始图片</param>///<param name="width">原始图片的长度</param>///<param name="height">原始图片的高度</param> public Bitmap RevPicLR(Bitmap mybm, int width, int height) {Bitmap bm = new Bitmap(width, height);int x, y, z; //x,y是循环次数,z是用来记录像素点的x坐标的变化的Color pixel;for (y = height - 1; y >= 0; y--){for (x = width - 1, z = 0; x >= 0; x--){pixel = mybm.GetPixel(x, y);//获取当前像素的值bm.SetPixel(z++, y, Color.FromArgb(pixel.R, pixel.G, pixel.B));//绘图}}return bm;}#endregion#region上下翻转///<summary>///上下翻转///</summary>///<param name="mybm">原始图片</param>///<param name="width">原始图片的长度</param>///<param name="height">原始图片的高度</param>public Bitmap RevPicUD(Bitmap mybm, int width, int height){Bitmap bm = new Bitmap(width, height);int x, y, z;Color pixel;for (x = 0; x < width; x++){for (y = height - 1, z = 0; y >= 0; y--){pixel = mybm.GetPixel(x, y);//获取当前像素的值bm.SetPixel(x, z++, Color.FromArgb(pixel.R, pixel.G, pixel.B));//绘图}}return bm;}#endregion#region压缩图片///<summary>///压缩到指定尺寸///</summary>///<param name="oldfile">原文件</param>///<param name="newfile">新文件</param>public bool Compress(string oldfile, string newfile){try{System.Drawing.Image img =System.Drawing.Image.FromFile(oldfile);System.Drawing.Imaging.ImageFormat thisFormat = img.RawFormat;Size newSize = new Size(100, 125);Bitmap outBmp = new Bitmap(newSize.Width, newSize.Height);Graphics g = Graphics.FromImage(outBmp);positingQuality = CompositingQuality.HighQuality;g.SmoothingMode = SmoothingMode.HighQuality;g.InterpolationMode = InterpolationMode.HighQualityBicubic;g.DrawImage(img, new Rectangle(0, 0, newSize.Width, newSize.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel);g.Dispose();EncoderParameters encoderParams = new EncoderParameters();long[] quality = new long[1];quality[0] = 100;EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);encoderParams.Param[0] = encoderParam;ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();ImageCodecInfo jpegICI = null;for (int x = 0; x < arrayICI.Length; x++)if (arrayICI[x].FormatDescription.Equals("JPEG")){jpegICI = arrayICI[x]; //设置JPEG编码break;}img.Dispose();if(jpegICI != null) outBmp.Save(newfile, System.Drawing.Imaging.ImageFormat.Jpeg);outBmp.Dispose();return true;}catch{return false;}}#endregion#region图片灰度化public Color Gray(Color c){int rgb = Convert.ToInt32((double)(((0.3 * c.R) + (0.59 * c.G)) + (0.11 * c.B)));return Color.FromArgb(rgb, rgb, rgb);#endregion#region转换为黑白图片///<summary>///转换为黑白图片///</summary>///<param name="mybt">要进行处理的图片</param>///<param name="width">图片的长度</param>///<param name="height">图片的高度</param>public Bitmap BWPic(Bitmap mybm, int width, int height) {Bitmap bm = new Bitmap(width, height);int x, y, result; //x,y是循环次数,result是记录处理后的像素值Color pixel;for (x = 0; x < width; x++){for (y = 0; y < height; y++){pixel = mybm.GetPixel(x, y);//获取当前坐标的像素值result = (pixel.R + pixel.G + pixel.B) / 3;//取红绿蓝三色的平均值bm.SetPixel(x, y, Color.FromArgb(result, result, result));}}return bm;}#endregion#region获取图片中的各帧///<summary>///获取图片中的各帧///</summary>///<param name="pPath">图片路径</param>///<param name="pSavePath">保存路径</param>public void GetFrames(string pPath, string pSavedPath){Image gif = Image.FromFile(pPath);FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0]);int count = gif.GetFrameCount(fd); //获取帧数(gif图片可能包含多帧,其它格式图片一般仅一帧)for (int i = 0; i < count; i++) //以Jpeg格式保存各帧{gif.SelectActiveFrame(fd, i);gif.Save(pSavedPath + "\\frame_"+ i + ".jpg", ImageFormat.Jpeg);#endregion。
如何利用Photoshop添加水印到图片中
如何利用Photoshop添加水印到图片中在如今的数字时代,随着图片的广泛分享和传播,保护图片的版权成为了一个重要的话题。
为了确保图片的归属权和防止盗用,许多摄影爱好者和专业摄影师使用水印来在图片上添加自己的标识。
Photoshop是一款功能强大的图像处理软件,它提供了各种各样的工具和功能,可以轻松地为照片添加水印。
下面是一些使用Photoshop添加水印的简单技巧和步骤。
第一步:打开图像首先,打开你想要给图片添加水印的图像。
点击Photoshop菜单栏中的“文件”,然后选择“打开”,浏览并选择你的图像文件。
点击“确定”以打开图像。
第二步:创建水印现在,你需要创建你的水印。
在Photoshop中,有多种方式可以创建水印。
你可以使用文字工具(T字形图标)添加文字水印,也可以使用自己设计的图片作为水印。
如果你选择使用文字水印,点击工具栏中的文字工具,并在图像上点击以创建一个文本框。
在弹出的文本框中输入你想要的水印文字,并调整字体、大小和颜色以符合你的需求。
如果你选择使用图片水印,点击工具栏中的“文件”按钮,并选择你准备好的图片文件。
然后,将图片拖动到图像上,并调整大小和位置。
第三步:调整水印样式一旦你添加了水印,你可以通过编辑工具栏上的选项对水印进行进一步的调整和定位。
你可以改变水印的透明度,改变文字或图片的大小和位置,以及添加阴影或特殊效果。
要改变水印的透明度,选择图层面板中的水印图层,在透明度选项旁边的滑块上滑动,以增加或减少水印的透明度。
你可以根据自己的需要调整透明度,以确保水印不会分散图像的注意力,但又能够清晰显示。
要调整水印的大小和位置,选择图层面板中的水印图层,并使用变换工具(快捷键:Ctrl+T)调整水印的大小、旋转和位置。
拖动水印的边缘或角落来改变大小,拖动水印的中心来移动位置。
第四步:保存图像调整水印样式后,你可以保存图像并应用水印。
点击菜单栏中的“文件”选项,选择“保存为”,然后选择你想要保存图像的格式和位置。
点阵水印前端实现方法
点阵水印前端实现方法
点阵水印是一种在图像中添加不可见标记的技术,通常用于版权保护、图像认证和数据隐藏等应用。
在前端实现点阵水印,可以采用以下步骤:
1. 准备图像和水印数据:选择一张需要添加水印的图像,以及要添加的水印数据。
水印数据可以是文字、数字、图形等。
2. 创建水印图像:将水印数据转换为图像格式,例如将文字转换为像素图像。
可以使用开源库如PIL(Python Imaging Library)或类似工具实现。
3. 计算水印位置:确定水印在原始图像中的位置。
通常,水印应该放置在图像的角落或边缘,以避免影响图像的视觉效果。
可以使用随机算法或手动选择位置。
4. 添加水印到图像:将水印图像叠加到原始图像上。
可以使用像素操作或图像处理库实现。
在叠加过程中,需要调整透明度、颜色等参数,以使水印与原始图像融合。
5. 保存或输出图像:将添加了水印的图像保存到本地或输出到网页上。
可以使用常见的图像格式,如JPEG、PNG等。
需要注意的是,前端实现点阵水印可能受到浏览器安全限制和性能影响。
因此,在实际应用中,可能需要后端支持或采用其他安全措施来确保水印的有效性。
如何用photoshop添加图片水印-photoshop 添加水印
如何用photoshop添加图片水印:photoshop 添加水印
很多图片都需要添加水印的,这样才能防止图片被盗取。
其实这个也不算太难,下面就让小编告诉你如何用photoshop添加图片水印的方法,一起学习吧。
用photoshop添加图片水印的方法
打开ps软件,新建一个透明的画布,例如200*200像素大小。
在画布上输入水印的内容,填充颜色后,修改透明度。
复制一遍图层,降低透明度。
选中两个图层后按编辑-变换-旋转,或者快捷键ctrl+t,旋转一定的角度。
编辑-自定义图案,保存和命名图案。
打开一张需要加入水印的图片,编辑-填充-图案,找到刚才的做的图案,确定。
看一下加入水印后的效果图。
如果觉得水印太多的话刚开始可以建立一个大的画布,水印效果就不会这么密集了。
看了如何用photoshop添加图片水印的人还看了:
1.怎么用photoshop给图片加个水印
2.怎么用photoshop给图片加水印
3.photoshop怎样给图片做水印
4.photoshop怎么给图片做水印
5.photoshop怎么给图片批量加水印
感谢您的阅读!。
如何制作精美的水印效果:Photoshop教程
如何制作精美的水印效果:Photoshop教程一、引言水印在数字化时代的摄影作品中扮演着非常重要的角色。
它不仅可以保护你的作品免受未经授权的复制和使用,还可以为你的照片增加个性化的标识。
Photoshop是一款功能强大的图像处理软件,提供了各种工具和效果,使得制作精美的水印效果成为可能。
本教程将详细介绍如何在Photoshop中制作精美的水印效果。
二、步骤1. 确定水印样式在开始制作水印之前,首先需要确定水印的样式和内容。
水印可以是文字或图形,你可以使用你的名字、网站名或者个人标识作为水印。
确定水印的样式和字体,并将其保持在格式清晰的高分辨率图像文件中,以便在后续步骤中使用。
2. 打开照片在Photoshop中打开你想要添加水印的照片。
选择“文件”>“打开”,然后导航到照片所在的文件夹并选择它。
3. 创建新图层在打开的照片文件中,点击图层面板底部的新建图层按钮创建一个新的图层。
命名它为“水印”。
4. 添加文字水印使用文字工具(T)在新建的“水印”图层中创建文字水印。
点击照片上你想要添加水印的位置,并输入你事先确定的水印内容。
调整字体、大小、颜色等属性,以获得你想要的效果。
5. 设置透明度和位置选中“水印”图层,在图层面板中将透明度设置为适当的值,以确保水印不会过于显眼但又清晰可见。
然后,使用移动工具(按键:V)将水印放置在照片上你想要的位置。
6. 创建图像水印如果你想要添加图像水印而不是文字水印,可以使用“文件”>“打开”命令将你的图像文件导入到Photoshop中。
在图层面板中,将其拖动到“水印”图层下方,然后调整大小和位置,使其适应照片。
7. 调整图层样式为了增加水印的可见性和吸引力,你可以添加一些图层样式。
选中“水印”图层,然后点击底部的图层样式按钮或选择“图层”>“样式”>“添加图层样式”。
在弹出的样式对话框中,在边框、倒影、阴影等选项中进行调整,以实现你所期望的效果。
blindwatermark使用 -回复
blindwatermark使用-回复如何使用blindwatermark进行图片水印处理。
Step 1: 下载和安装blindwatermark要使用blindwatermark进行图片水印处理,首先需要下载和安装该软件。
您可以在blindwatermark的官方网站上找到最新的安装程序。
根据您的操作系统选择相应的版本,并按照安装向导进行操作。
安装完成后,您将在计算机上找到blindwatermark的图标。
Step 2: 打开blindwatermark并导入图片打开blindwatermark软件,您会看到一个简洁而直观的用户界面。
在顶部菜单栏中,选择“文件”>“打开”,然后浏览并选择您想要添加水印的图片。
您也可以拖放图片到blindwatermark窗口中。
Step 3: 添加文本水印在左侧的工具栏中,点击“文本”按钮。
在“文本”选项卡中,您可以选择字体、字号、颜色等文本样式。
在“水印内容”文本框中输入您想要添加的水印文字。
您可以根据需要调整文本水印的位置和透明度。
完成后,点击“应用”按钮。
Step 4: 添加图片水印如果您想要添加图片水印,可以在左侧的工具栏中点击“图片”按钮。
在“图片”选项卡中,点击“选择文件”按钮,浏览并选择您想要使用的水印图片。
您可以调整图片水印的位置、大小和透明度。
完成后,点击“应用”按钮。
Step 5: 设置水印参数在左侧工具栏的下方,您可以找到“参数”选项卡。
在这里,您可以调整整体的水印参数,如嵌入强度、旋转角度和缩放比例等。
您可以根据自己的需求进行微调。
Step 6: 预览和导出水印图片在添加完水印和设置参数后,您可以点击屏幕右上角的“预览”按钮,查看水印效果。
如果您对效果满意,可以选择“文件”>“导出”来保存水印处理后的图片。
您可以选择保存为新文件或覆盖原始图片,根据需要选择合适的选项。
总结:使用blindwatermark进行图片水印处理非常简单。
如何用Photoshop添加水印
如何用Photoshop添加水印对于照片上的水印,人们有各种不同的看法。
无论如何,事实上添加水印是保护自己作品的一个好办法,大部分摄影师都认为它很有效。
虽然Lightroom或Aperture等软件都有内置的加水印功能,不过本文将向大家介绍一种非常简单的,利用Photoshop自动为照片加水印的方法。
Step 1. 选择水印水印的形式可以有很多种,笔者比较喜欢在照片右下角以简单的文字说明做水印。
当然还有很多更高级,更完善的水印,不过有时它们会影响照片的整体美观。
我们的第一步就是选择一种水印形式。
这里我们选择文字“Copyright ”。
Step 2. 调整图片尺寸接下来,我们在Photoshop打开一张照片,并调整它的尺寸。
这个尺寸应该是你用于发布到网上的照片最常用的尺寸,因为加好水印后一般就不该再改变照片大小了。
这里我们选择横边640像素。
Step 3. 创建一个新动作Photoshop中的“动作”功能能够帮助我们完成大量重复工作。
你可以在软件窗口右边看到“动作”面板。
如果没有的话,点击“窗口”-“动作”呼叫出来。
“动作”的工作原理是记录下你的一系列操作,并在以后重复这些操作。
现在我们要创建一个新动作,点击右上角菜单,选择“新建动作”,输入动作名称,比如“水印”。
在点下“记录”后,必须保证下面所有的操作都是创建水印所必需的,不要有多余操作,因为它们都会被记录下来。
Step 4. 输入水印文字接下来是输入水印文字。
这里要输入那些可用于每一张照片的文字,因为这个动作是通用的。
输入完成之后可以修改文字格式,直到你满意为止。
完成后按小键盘上的回车键退出文字工具。
Step 5. 调整水印位置假设你也准备把水印放在照片右下角。
首先,按住Ctrl键选中水印文字图层和照片(背景图层)。
然后,选择菜单“图层”-“对齐”-“底边”,接着选择“图层”-“对齐”-“右边”。
现在文字水印就已经对齐在照片的右下角了。
为了美观,可以将文字图层分别向左和向上移动20像素(选中文字图层,按住Shift键,点击一次方向键可移动10像素)。
加水印的方法很多很多
加水印的方法很多很多,下面我就介绍几种,总有一种适合您的;一、专业的加水印工具a, PhotoMark (图片水印添加) v1.1.0.19 汉化纯绿版 :不用打开庞大缓慢的Photoshop,试试PhotoMark吧!PhotoMark是一款专门给图象加水印功能的工具,可以快速,准确,方便的添加您的独特标识,甚至在不同的地方做多个标识,一次完成!主要的功能有:支持多个水印同时加入支持多种方式批量处理水印创建,管理支持半透明水印,支持部分透明水印支持2种类型的水印:图象类型和文字类型支持JPG,BMP,GIF等格式的文件。
支持平铺水印能够把加入水印后图象直接转换为JPG或BMP图象完成后有详细记录的Log支持水印导入导出功能。
b, 光影魔术手的软件,在里面ctrl+o,选中您要的图片打开,然后点击导航栏里面的工具下拉,里面就有水印选项打开,在对话框里面有个跟浏览图片的那个框条一样点击一下,把您所要添加的水印选中即可,最后在看它要放到什么样的位置确定即可。
二、用word加水印您可以在第一页末尾定住光标,单击:1.插入->分隔符->下一页2.视图->页眉和页脚->找到"链接到前一个"的图标并确认不按下 (或在页眉上双击也会弹出页眉页脚对话框,找到"连接到前一个"的图标并确认不按下也可) ,在关闭页眉页脚工具栏前在水印文字(图片)上单击发现水印变为花状,按Delete键删除即可.如果页眉出现横线,想去除的话,方法1:这是比较正统的方法1、定位光标在页眉内(可以双击页眉区,也可以从"视图"菜单上选择"页眉和页脚")2、从菜单上选择"格式-边框和底纹",在边框标签上选择"无",应用范围为"段落"方法2:这种方法比较快捷,一目了然1、定位光标在页眉内;2、在格式工具栏上的左边样式区选择"正文",把默认的样式"页眉"改过来即可。
基于.NET平台数字图像可见水印系统的实现
I p e nt to o g t l I a sbl a e mar n Sy t m Ba e o . m l me a i n f Di i m ge Vii e W t r a ki g se s d n NET a f r Pl to m
Ab ta t T ep prdvtst aheea d百t maevs l w tr rigss m hc sbsd O h lt r o N T sr c: h a e eo o c i i a i g ibe aemakn yt ,w ih i ae i tepaf m f.E e v l i e l o a d i h n i n n fV sa Sui 0 8 o ie i tli g rc si ,d ̄t aem rig plc— n n te evr meto iul tdo2 0 ,cmbnd wt d a maepoes g i M w tr akn r i o h n n
pe n GDI p i ig tc nq e .Ths sse c r r vd u es wih tx—b s d is a d + ant e h iu s n i ytm al o ie sr t e t ae wae ak .i g —b s d wae — p tr r s ma e ae tr m m
a k ,g a ft t p i d v d a ie tr a k ,a d s p o b t h p o e sn ,t e e l t e t g ,a d p e iw. r s rf i y e n i i u l z d wa e r s n u p  ̄ a c r c s i g h t mp a e s t n s n r v e i — m i
文件 水印 案例
文件水印案例
水印可以用于保护版权、标识身份等目的。
在文件中添加水印有多种方法,以下列举部分案例供参考:
- 插入文本框水印:
1. 点击【插入】菜单栏下的【文本】,选择【文本框】,再选择【绘制横版文本框】;
2. 设置字体、字号、颜色,调整位置,将【形状填充】、【形状轮廓】选择【无填充】。
- 插入艺术字水印:
1. 点击【插入】菜单栏下的【文本】,选择【艺术字】;
2. 输入水印内容,单击艺术字体文本框,点击鼠标右键,选择【设置形状格式】,再选择【文本选项】;
3. 在【文本填充】中调整【透明度】。
- 插入页眉图片水印:
1. 点击【插入】菜单栏下的【文本】,选择【页眉页脚】;
2. 点击【页眉和页脚元素】中的【图片】,在弹出的【插入图片】中选择【从文件】,选中图片插入;
3. 点击【设置图片格式】,选择【图片】,在【图像控制】中的【颜色】选择【冲蚀】,点击【确定】。
不同的水印制作方法可能会有不同的效果,你可以根据实际需求选择适合的方法。
如需了解更多关于水印的信息,可以继续向我提问。
如何使用Adobe Photoshop软件在图片中添加水印
如何使用Adobe Photoshop软件在图片中添加水印在数字化时代,图片的盗用问题日益严重,为了保护个人或者企业的创作权益,很多人都会选择在图片中添加水印。
而Adobe Photoshop软件作为一款功能强大的图像处理工具,能够帮助用户实现这一目标。
下面将介绍如何使用Adobe Photoshop软件在图片中添加水印。
首先,打开Adobe Photoshop软件并导入需要添加水印的图片。
点击菜单栏的“文件”选项,选择“打开”命令,然后从电脑中选择相应的图片文件进行导入。
接下来,选择合适的水印样式。
在菜单栏中找到“窗口”选项,点击之后会出现一个下拉菜单,选择“层样式”选项,然后在右侧的面板中点击“样式”选项卡,在其中选择合适的水印样式。
可以尝试不同的样式,比如简单的文本水印、透明的图片水印等,根据实际需要进行选择。
然后,在图像上添加水印。
在工具栏中找到“文本”工具,点击之后在图像上创建一个文本框,然后输入需要添加的水印内容,比如作者的名字、网站的名称等。
通过调整字体、大小、颜色等参数,使水印看起来更加醒目和美观。
此外,还可以添加透明图片水印。
点击菜单栏的“文件”选项,选择“打开”命令,然后选择要作为水印的图片文件进行导入。
然后,在图像处理软件中复制该透明图片,然后粘贴到需要进行添加水印的图片上。
通过调整大小、位置等参数,使水印与原图片融合并达到防止盗用的效果。
在进行添加水印后,为了防止被移动或删除,我们可以将水印与原图片合并。
首先,在图像上点击鼠标右键,选择“复制图层”命令,然后在弹出的对话框中选择“新建”选项,创建一个新的图层。
接下来,点击“图层”选项卡,选择“合并可见”命令,将所有图层合并成一个图层。
最后,点击菜单栏中的“文件”选项,选择“保存”命令,将处理后的图片保存到电脑中。
当然,在添加水印的过程中,我们还可以调整水印的透明度、位置、大小等参数,以实现最佳的效果。
比如,通过降低透明度可以让水印更加融入到图片中,使其不显得突兀;通过调整位置和大小可以防止图片被剪切或者裁剪。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用.net中System.Drawing命名空间下的常用类我们就可以轻松的为图片添加文字水印和图片水印,并且可以自定义水印文字和水印图片的大小、位置、颜色、透明度等等!对于jpg 或者png等图片,可以直接通过Graphics g= Graphics.FromImage(image)来获得Graphics对象,但对于gif图片,通过这种方法无法获得Graphics对象,解决这个问题的方法是首先根据.gif 文件的大小生成一个位图作图区,然后将原图复制到作图区,做进行处理,以下是水印添加类的完整代码:using System;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Drawing.Drawing2D;namespace JillZhang{/**//// <summary>/// 给图片添加水印得类得描述/// </summary>public class WaterMark{private bool _textMark=false;private bool _imgMark=false;private string _text="";private string _imgPath="";private int _markX=0;private int _markY=0;private float _transparency=1;private string _fontFamily="宋体";private Color _textColor=Color.Black;private bool _textbold=false;int[] sizes=new int[]{48,32,16,8,6,4};/**//// <summary>/// 实例化一个水印类/// </summary>public WaterMark(){}/**//// <summary>///初始化一个只添加文字水印得实例/// </summary>/// <param name="text">水印文字</param>/// <param name="fontFamily">文字字体</param>/// <param name="bold">是否粗体</param>/// <param name="color">字体颜色</param>/// <param name="markX">标记位置横坐标</param>/// <param name="markY">标记位置纵坐标</param>public WaterMark(string text,string fontFamily,bool bold,Color color,int markX,int markY) {this._imgMark=false;this._textMark=true;this._text=text;this._fontFamily=fontFamily;this._textbold=bold;this._textColor=color;this._markX=markX;this._markY=MarkY;}/**//// <summary>/// 实例化一个只添加图片水印得实例/// </summary>/// <param name="imagePath">水印图片路径</param>/// <param name="tranparence">透明度</param>/// <param name="markX">标记位置横坐标</param>/// <param name="markY">标记位置纵坐标</param>public WaterMark(string imagePath,float tranparence,int markX,int markY){this._textMark=false;this._imgMark=true;this._imgPath=imagePath;this._markX=markX;this._markY=MarkY;this._transparency=tranparence;}/**//// <summary>/// 是否添加文字水印/// </summary>public bool TextMark{get{return _textMark;}set{_textMark=value;}}/**//// <summary>/// 是否添加图片水印/// </summary>public bool ImageMark{get{return _imgMark;} set{_imgMark=value;}}/**//// <summary>/// 文字水印得内容/// </summary>public string Text{get{return _text;}set{_text=value;}}/**//// <summary>/// 图片水印得图片地址/// </summary>public string ImagePath {get{return _imgPath;} set{_imgPath=value;}}/**//// <summary>/// 添加水印位置得横坐标/// </summary>public int MarkX{get{return _markX;}set{_markX=value;}}/**//// <summary>/// 添加水印位置得纵坐标/// </summary>public int MarkY{get{return _markY;}set{_markY=value;}}/**//// <summary>/// 水印得透明度/// </summary>public float Transparency {get{if(_transparency>1.0f){_transparency=1.0f;}return _transparency;}set{_transparency=value;}}/**//// <summary>/// 水印文字得颜色/// </summary>public Color TextColor{get{return _textColor;}set{_textColor=value;}}/**//// <summary>/// 水印文字得字体/// </summary>public string TextFontFamily{get{return _fontFamily;}set{_fontFamily=value;}}/**//// <summary>/// 水印文字是否加粗/// </summary>public bool Bold{get{return _textbold;}set{_textbold=value;}}/**//// <summary>/// 添加水印,此方法适用于gif格式得图片/// </summary>/// <param name="image">需要添加水印得图片</param>/// <returns>添加水印之后得图片</returns>public Image Mark(Image img){try{//添加文字水印if(this.TextMark){//根据源图片生成新的Bitmap对象作为作图区,为了给gif图片添加水印,才有此周折Bitmap newBitmap=new Bitmap(img.Width,img.Height,PixelFormat.Format24bppRgb);//设置新建位图得分辨率newBitmap.SetResolution(img.HorizontalResolution,img.VerticalResolution);//创建Graphics对象,以对该位图进行操作Graphics g = Graphics.FromImage(newBitmap);//消除锯齿g.SmoothingMode=SmoothingMode.AntiAlias;//将原图拷贝到作图区g.DrawImage(img,newRectangle(0,0,img.Width,img.Height),0,0,img.Width,img.Height,GraphicsUnit.Pixel);//声明字体对象Font cFont = null;//用来测试水印文本长度得尺子SizeF size=new SizeF();//探测出一个适合图片大小得字体大小,以适应水印文字大小得自适应for(int i=0;i<6;i++){//创建一个字体对象cFont= new Font(this.TextFontFamily,sizes[i]);//是否加粗if(!this.Bold){cFont= new Font(this.TextFontFamily,sizes[i],FontStyle.Regular);}else{cFont=new Font(this.TextFontFamily,sizes[i],FontStyle.Bold);}//测量文本大小size=g.MeasureString(this.Text,cFont);//匹配第一个符合要求得字体大小if((ushort)size.Width<(ushort)img.Width){break;}}//创建刷子对象,准备给图片写上文字Brush brush= new SolidBrush(this.TextColor);//在指定得位置写上文字g.DrawString(this.Text,cFont,brush,this.MarkX,this.MarkY);//释放Graphics对象g.Dispose();//将生成得图片读入MemoryStreamSystem.IO.MemoryStream ms = new System.IO.MemoryStream();newBitmap.Save(ms,ImageFormat.Jpeg);//重新生成Image对象img=System.Drawing.Image.FromStream(ms);//返回新的Image对象return img;}//添加图像水印if(this.ImageMark){//获得水印图像Image markImg = Image.FromFile(this.ImagePath);//创建颜色矩阵float[][] ptsArray ={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, this.Transparency, 0}, //注意:此处为0.0f为完全透明,1.0f为完全不透明new float[] {0, 0, 0, 0, 1}};ColorMatrix colorMatrix= new ColorMatrix(ptsArray);//新建一个Image属性ImageAttributes imageAttributes= new ImageAttributes();//将颜色矩阵添加到属性imageAttributes.SetColorMatrix(colorMatrix,ColorMatrixFlag.Default,ColorAdjustType.Default);//生成位图作图区Bitmap newBitmap=new Bitmap(img.Width,img.Height,PixelFormat.Format24bppRgb);//设置分辨率newBitmap.SetResolution(img.HorizontalResolution,img.VerticalResolution);//创建GraphicsGraphics g = Graphics.FromImage(newBitmap);//消除锯齿g.SmoothingMode=SmoothingMode.AntiAlias;//拷贝原图到作图区g.DrawImage(img,newRectangle(0,0,img.Width,img.Height),0,0,img.Width,img.Height,GraphicsUnit.Pixel);//如果原图过小if(markImg.Width>img.Width||markImg.Height>img.Height){System.Drawing.Image.GetThumbnailImageAbort callb=null;//对水印图片生成缩略图,缩小到原图得1/4System.Drawing.Imagenew_img=markImg.GetThumbnailImage(img.Width/4,markImg.Height*img.Width/markImg.Widt h,callb,new System.IntPtr());//添加水印g.DrawImage(new_img,newRectangle(this.MarkX,this.MarkY,new_img.Width,new_img.Height),0,0,new_img.Width,new_img. Height,GraphicsUnit.Pixel,imageAttributes);//释放缩略图new_img.Dispose();//释放Graphicsg.Dispose();//将生成得图片读入MemoryStreamSystem.IO.MemoryStream ms = new System.IO.MemoryStream();newBitmap.Save(ms,ImageFormat.Jpeg);//返回新的Image对象img=Image.FromStream(ms);return img;}//原图足够大else{//添加水印g.DrawImage(markImg,newRectangle(this.MarkX,this.MarkY,markImg.Width,markImg.Height),0,0,markImg.Width,markImg. Height,GraphicsUnit.Pixel,imageAttributes);//释放Graphicsg.Dispose();//将生成得图片读入MemoryStreamSystem.IO.MemoryStream ms = new System.IO.MemoryStream();newBitmap.Save(ms,ImageFormat.Jpeg);//返回新的Image对象img=Image.FromStream(ms);return img;}}return img;}catch{return img;}}}}。