六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 326|回复: 0

WPF:使用RenderTargetBitmap和DrawingVisual为图片添加简单的水印

[复制链接]

升级  67.33%

128

主题

128

主题

128

主题

举人

Rank: 3Rank: 3

积分
402
 楼主| 发表于 2013-1-3 15:37:24 | 显示全部楼层 |阅读模式
<div class="postcontent"><div id="cnblogs_post_body">RenderTargetBitmap继承自BitmapSource类型,并且定义有Clear和Render两个重要方法,一个将图片全部设置成黑色透明,另一个将WPF中的Visual对象输出到图像中。
  
   
  RenderTargetBitmap的构造函数参数都是构建位图图像的常用属性:像素大小、DpiX、DpiY和像素存储格式。对于普通图片存储,使用默认值就可以了。Dpi相关的参数用0(0代表使用默认值,而最终图片的Dpi是不可能为0的,通常默认的是96),像素存储格式用PixelFormats.Default(对应Pbgra32)。
   
  DrawingVisual继承自ContainerVisual类型,它定义了一个非常强大的方法:RrenderOpen,返回一个DrawingContext,后者类似GDI中的Device Context,通过它可以向图形终端输出图形数据。
   
  那么可以使用RenderTargetBitmap和DrawingVisual来做一个简单的为图片添加水印的程序。
   
  效果如下:
  原始图像:
  
   
  程序运行后:
   
  
   
   
  下面程序代码,除了需要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;
    //文件/路径相关操作
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表