在C#编程中,添加水印到图片是一项常见的任务,特别是在设计软件或处理图像的应用程序中。本示例主要关注如何使用C#和WPF(Windows Presentation Foundation)技术来实现这个功能,既可以添加图片水印,也可以添加文字水印。以下是对这个主题的详细讲解。 1. **基本概念** - **水印**:水印是添加到图像上的半透明标记,可以是文本、图形或其他图像,用于表明所有权、版权信息或添加视觉标识。 - **合成图片**:将多个图像或元素合并到一个单一图像的过程。 2. **C#与WPF结合** WPF是.NET框架的一个组成部分,提供了丰富的UI设计和图像处理能力。在C#中利用WPF,我们可以方便地进行图像操作,包括添加水印。 3. **两种合成图片的方法** - **位图操作**:通过直接操作像素数据,在原图像上覆盖或混合水印图像或文字。 - **绘图对象**:使用WPF的`System.Windows.Media.Drawing`命名空间中的类,如`DrawingContext`和`Geometry`,可以创建和绘制水印。 4. **C#代码实现** - **图片水印**:首先加载主图像和水印图像,然后在主图像的适当位置上绘制水印图像,调整透明度以达到预期效果。 - **文字水印**:创建一个`TextBlock`对象,设置字体、颜色、透明度和旋转角度,然后利用绘图上下文在主图像上绘制。 5. **创建DEMO** 创建一个简单的WPF应用,包含一个按钮和两个图像选择器(一个用于主图像,一个用于水印)。当用户点击按钮时,读取选定的文件,执行水印添加操作,并显示结果。 6. **关键代码片段** - 加载图片: ```csharp var mainImage = new BitmapImage(new Uri(mainImagePath)); var watermarkImage = new BitmapImage(new Uri(watermarkImagePath)); ``` - 添加图片水印: ```csharp using (var graphics = Graphics.FromImage(mainImage)) { graphics.DrawImage(watermarkImage, position, 0, 0, watermarkImage.Width, watermarkImage.Height, GraphicsUnit.Pixel, imageAttributes); } ``` - 添加文字水印: ```csharp var textBlock = new TextBlock { Text = "水印文字", FontFamily = new FontFamily("Arial"), Foreground = Brushes.Gray, Opacity = 0.5 }; RenderTargetBitmap renderBitmap = new RenderTargetBitmap(textBlock.Width, textBlock.Height, 96, 96, PixelFormats.Pbgra32); drawVisual.RenderOpen().DrawText(textBlock, new Point(0, 0)); drawVisual.Close(); var mainBitmap = new BitmapImage(); mainBitmap.BeginInit(); mainBitmap.StreamSource = new MemoryStream(); renderBitmap.SaveJpeg(mainBitmap.StreamSource, renderBitmap.PixelWidth, renderBitmap.PixelHeight, 0, 100); mainBitmap.EndInit(); graphics.DrawImage(mainBitmap, position); ``` 7. **注意事项** - 位置调整:确保水印位于合适的位置,可以使用坐标或百分比。 - 透明度控制:调整水印的透明度以保持原图像的可读性。 - 错误处理:处理可能出现的文件读取错误或空指针异常。 8. **MegerImg.Demo** 压缩包中的"MegerImg.Demo"很可能是这个C# WPF项目的演示程序,包含了源代码和可能的示例图片。通过查看和运行这个项目,你可以更好地理解上述理论知识的实际应用。 C#结合WPF为图片添加水印提供了一种强大而灵活的方法,无论是图片还是文字水印,都可以轻松实现。通过创建DEMO并运行代码,你可以进一步熟悉这个过程,并将其应用到自己的项目中。





















































































































- 1
- 2

- 江浙沪Azure2022-09-29弹框“请稍等片刻”,无后续了

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 公路工程监理工作总结111.doc
- 大学生节演讲比赛总结.doc
- 第六卷分部(分项)安全技术交底.doc
- 标杆地产集团工程质量管理检查评分办法.doc
- 多联机空调系统噪音分析PPT课件.ppt
- 第4章+信息化教学设计与实践.ppt
- 23章-重力流讲课.pdf
- [标杆地产]工程项目和材料设备招标管理流程指导.doc
- 通风管道系统的设计计算讲义.ppt
- 2013年空气源热泵在北美的状况浅析PPT讲稿.pptx
- 福州某大厦深基坑支护设计与施工方案.doc
- 现浇排水沟施工总结.doc
- 组合钢框木胶合板模板安装拆除施工技术.doc
- 基于大数据的服装个性定制.docx
- 《培训体系与计划制定全套解决方案》-6大讲义58页图文详解.doc
- 地基与基础工程施工方案.doc


