Mgen 发表于 2012-12-19 21:13:00

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]
查看完整版本: WPF:使用RenderTargetBitmap和DrawingVisual为图片添加简单的水印