# 【3.2Beta】D2D图像蒙版 - Rainmeter技术教程 - 雨滴社区 - Powered by Discuz!
 找回密码
 点击注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 11358|回复: 23

[技术交流] 【3.2Beta】D2D图像蒙版

[复制链接]

签到天数: 78 天

[LV.6]常住居民II

发表于 2014-8-27 16:46:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?点击注册

x
本帖最后由 suixin812 于 2014-8-27 17:40 编辑

简述

图像蒙版是8月21日Rainmeter 3.2.2308新推出的功能。

图像蒙版是根据蒙版图像对原始图像的形状进行限定的一种功能。
通常蒙版是以黑白两色确定原始图像的是否保留(如Photoshop中的图层蒙版),但Rainmeter中的图像蒙版是根据蒙版的透明度来对原始图像进行裁剪,这类似于Photoshop中的剪贴蒙版。


手册描述

MaskImageName


指定一个图片文件作为(由MeasureName或ImageName指定的)主图像的蒙版。
蒙版的大小与形状将影响主图像的大小和形状。

MaskImageName可以是任何支持的图片文件的完整地址,或相对地址,或只是文件名并由MaskImagePath选项指定文件夹地址。

若MaskImageName定义,则W与H选项定义蒙版图像大小以及最终Meter的大小。主图像将随后通过“填充”的方案(保留纵横比缩放并裁剪多余部分)来“蒙上”蒙版图像——蒙版不透明区域保留,透明区域丢去。

若主图像或蒙版图像包含透明或半透明区域,则其alpha通道(透明度)将应用到最终图像。当两个图像包含完全透明或半透明的重叠区域,则将应用“最大透明度”值(the Most Transparent Value)。


注意:
o 蒙版功能只被有D2D渲染功能的系统支持。XP系统或者在Rainmeter设置中关闭了D2D渲染时无法使用这一功能。
o MaskImageName选项无法通过%1, %2引用MeasureNameN的返回值。
o 若设置了MaskImageName,则ScaleMargins和Tile选项将对Meter无法使用。



示例

主图像与蒙版图像

                               
登录/注册后可看大图

                               
登录/注册后可看大图


应用蒙版后的结果

                               
登录/注册后可看大图


代码
  1. [Rainmeter]
  2. Update=1000
  3. DynamicWindowSize=1
  4. AccurateText=1

  5. ;Abbey.jpg is 300 X 300
  6. ;Apple.png is 491 X 480

  7. [MeterMaskedImage]
  8. Meter=Image
  9. W=250
  10. ImagePath=#@#Images\
  11. MaskImagePath=#@#Masks\
  12. ImageName=Abbey.jpg
  13. MaskImageName=Apple.png

  14. [MeterSize]
  15. Meter=String
  16. Y=5R
  17. FontSize=12
  18. FontColor=255,255,255,255
  19. SolidColor=47,47,47,255
  20. Padding=5,5,5,5
  21. AntiAlias=1
  22. Text=W: [MeterMaskedImage:W] | H: [MeterMaskedImage:H]
  23. DynamicVariables=1
复制代码





需要注意的地方:


//MaskImageName


蒙版功能只被启用D2D渲染功能的系统支持。也就是说XP的系统或者在Rainmeter设置中关闭了D2D渲染的情况下都无法使用这一功能。

尽管MaskImageName支持所有Rainmeter支持的图片格式,但只有使用有透明度的.png和.gif图片才有意义。因为要通过蒙版获取“形状”,那么蒙版本身的图像必须有透明或半透明的区域。




//尺寸


当定义了MaskImageName时,W和H决定了蒙版图像的尺寸,进而决定了Meter的尺寸。若同时定义W与H,则蒙版将拉伸以适应指定区域。若只制定了W或H,则蒙版将保留纵横比缩放以适应指定宽度或高度。若没有指定W或H,则蒙版图像将保留原始大小。

由ImageName亦或MeasureName指定的主图像将适应蒙版图像的大小。这种适应是保留纵横比并裁剪多余部分的缩放,换言之,与正常Image Meter的PreserveAspectRatio=2的效果一样。

上述结果是,当只指定W或H,代码将使蒙版图像自动的保留纵横比缩放,并同样使主图像保留纵横比缩放。Meter下的任何PreserveAspectRatio设置将被忽略。

尽管像PreserveAspectRatio=2一样在剪裁主图像以适应蒙版尺寸时无法控制裁剪的“起点”,但这一问题可以通过在蒙版图像上的四个边上增加一定范围的透明区域来实现。也就是说我们可以在主图像缩放剪裁以适应蒙版尺寸时,可以控制主图像哪一多余部分不被剪裁。当然,最终整个Meter的尺寸还是整个蒙版在W/H设置后的尺寸。


//变换


蒙版图像可以通过MaskImageRotate或MaskImageFlip来旋转或翻折。这与ImageRotate和ImageFlip类似,目前只有这两个选项可以对蒙版图像进行变换。

尽管如此我们必须指出,使用ImageRotate或MaskImageRotate很可能会有些问题。Meter的W和H是由未旋转的图像指定的,然后图像才在已经存在的“容器”内旋转。若旋转导致主图像不再与蒙版重合匹配,或蒙版不再与主图像匹配,则很容易就会产生意料外的裁剪和最终图像。

尽管很复杂,但TransformationMatrix(变换矩阵)大概是对最终图像旋转、斜切等操作更好的途径。TransformationMatrix会对整个Meter进行变换而非在原来Meter尺寸与形状内进行图像的变换。任何使用TransformationMatrix时都要注意Meter在变换后没有超出皮肤边界。

其他图像变换像ScaleMargins和Tile将对设置了MaskImageName的Meter不再有效。




//其他注意

蒙版功能无法用于任何只有SolidColor没有ImageName的Image类Meter。W、H、SolidColor实际上只是对Meter的容器进行上色,对图像本身没有影响。




//Brian补充

1. 选项只在D2D渲染下有效。XP与GDI+抱歉。
2. 某些图像选项像ScaleMargins和Tile不支持。
3. PreserveAspectRatio对MaskImageName无效,尽管ImageName会按照PreserveAspectRatio=2的方式来缩放。原因是让ImageName匹配蒙版的大小时有太多方案。



Rainmeter.net(2014) Rainmeter 3.2 Beta [Online]. Avaliable from: http://rainmeter.net/beta-3-2(Accessed: 27 August 2014)
Rainmeter.net(2014) Image Meter [Online]. Avaliable from: http://docs.rainmeter.net/manual-beta/meters/image#MaskImage(Accessed: 27 August 2014)
Rainmeter.net(2014) Image Masking [Online]. Avaliable from: http://rainmeter.net/forum/viewtopic.php?f=114&t=19124(Accessed: 27 August 2014)


评分

参与人数 1心动值 +1 活跃值 +10 技术值 +1 收起 理由
萝莉头 + 1 + 10 + 1 赠一点节操给你哦(^□^*)

查看全部评分

回复

使用道具 举报

签到天数: 50 天

[LV.5]常住居民I

发表于 2024-7-9 10:44:40 来自雨滴社区iPhone客户端 | 显示全部楼层
谢谢楼主分享!
回复

使用道具 举报

签到天数: 51 天

[LV.5]常住居民I

发表于 2016-4-20 20:45:35 | 显示全部楼层

回帖奖励 +2 点活跃值

学习了,不错
回复

使用道具 举报

签到天数: 453 天

[LV.9]以坛为家II

发表于 2016-3-22 22:10:21 | 显示全部楼层

回帖奖励 +2 点活跃值

顶啊
回复

使用道具 举报

签到天数: 9 天

[LV.3]偶尔看看II

发表于 2016-3-18 10:37:22 | 显示全部楼层
回复

使用道具 举报

签到天数: 69 天

[LV.6]常住居民II

发表于 2016-2-22 04:32:09 | 显示全部楼层

回帖奖励 +2 点活跃值


楼主真素活雷锋,
回复

使用道具 举报

签到天数: 4 天

[LV.2]偶尔看看I

发表于 2015-12-14 11:03:12 | 显示全部楼层

回帖奖励 +2 点活跃值

楼主真素活雷锋,
回复

使用道具 举报

签到天数: 4 天

[LV.2]偶尔看看I

发表于 2015-7-29 12:18:24 | 显示全部楼层

回帖奖励 +2 点活跃值

感恩,教程不错
回复

使用道具 举报

签到天数: 80 天

[LV.6]常住居民II

发表于 2015-7-27 17:01:05 | 显示全部楼层
顶一下~~~~~~
回复

使用道具 举报

签到天数: 77 天

[LV.6]常住居民II

发表于 2015-6-7 16:41:18 | 显示全部楼层

回帖奖励 +2 点活跃值

楼主辛苦了顶啊
回复

使用道具 举报

签到天数: 16 天

[LV.4]偶尔看看III

发表于 2015-6-6 11:59:32 | 显示全部楼层

回帖奖励 +2 点活跃值

为什么收藏那么小,害我找半天
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点击注册

本版积分规则

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