WPF:使用RenderTargetBitmap和DrawingVisual为图片添加简单的水印
<div class="postcontent"><div id="cnblogs_post_body">RenderTargetBitmap继承自BitmapSource类型,并且定义有Clear和Render两个重要方法,一个将图片全部设置成黑色透明,另一个将WPF中的Visual对象输出到图像中。http://images.cnblogs.com/cnblogs_com/mgen/201205/20120520011851415.png
RenderTargetBitmap的构造函数参数都是构建位图图像的常用属性:像素大小、DpiX、DpiY和像素存储格式。对于普通图片存储,使用默认值就可以了。Dpi相关的参数用0(0代表使用默认值,而最终图片的Dpi是不可能为0的,通常默认的是96),像素存储格式用PixelFormats.Default(对应Pbgra32)。
DrawingVisual继承自ContainerVisual类型,它定义了一个非常强大的方法:RrenderOpen,返回一个DrawingContext,后者类似GDI中的Device Context,通过它可以向图形终端输出图形数据。
那么可以使用RenderTargetBitmap和DrawingVisual来做一个简单的为图片添加水印的程序。
效果如下:
原始图像:
http://images.cnblogs.com/cnblogs_com/mgen/201205/201205200118512334.jpg
程序运行后:
http://images.cnblogs.com/cnblogs_com/mgen/201205/201205201552391132.jpg
下面程序代码,除了需要WPF中常用命名空间外,还需要读者加入如下命名空间:
<div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 10px; background-color: #262626; margin: 12px; padding-left: 10px; padding-right: 10px; border-top: gray 1px solid; border-right: gray 1px solid; padding-top: 10px" class="mgen_code"> using System.Windows.Media.Imaging;
//WPF图像类型
using System.IO;
//文件/路径相关操作
页:
[1]