# 一个辅助设置颜色矩阵的Lua脚本 - Rainmeter插件与测试 - 雨滴社区 - Powered by Discuz!
 找回密码
 点击注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 10735|回复: 45

[插件与脚本] 一个辅助设置颜色矩阵的Lua脚本

[复制链接]

签到天数: 78 天

[LV.6]常住居民II

发表于 2014-3-31 20:50:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 suixin812 于 2014-3-31 20:55 编辑

矩阵处理前

矩阵处理前

矩阵处理后(红蓝反色)

矩阵处理后(红蓝反色)


背景
颜色矩阵是一个很神奇的东西,它可以调整图像的颜色,各种意义上的调整,
包括去色、反色、黑白、染色调整不透明度、图像亮度对比度饱和度等等。
颜色矩阵并不是RM发明的,在其他很多地方都能看到,比如Photoshop里的各种滤镜效果和各种颜色调整。
Rainmeter中,任何包含图片的Meter都可以通过5个选项来设置颜色矩阵调整图像:
  1. ColorMatrix1=1; 0; 0; 0; 0
  2. ColorMatrix2=0; 1; 0; 0; 0
  3. ColorMatrix3=0; 0; 1; 0; 0
  4. ColorMatrix4=0; 0; 0; 1; 0
  5. ColorMatrix5=0; 0; 0; 0; 1
复制代码
功能很强大,方法也是有,但似乎……有点麻烦和困难啊。
比如图像太暗了,我要让图像亮一些,矩阵该怎么写呢?
好吧,这个问题你可以通过翻阅手册解决,
但如果,我想通过Bang指令来设置矩阵和改变矩阵呢?
如果要同时修改图像的对比度和饱和度呢?
抓狂了吧~~

解决方案
为了解决RM中颜色矩阵功能强大但使用困难这一问题,
本人制作了一个Lua脚本(ColorMatrix.lua),用来辅助颜色矩阵的计算和应用。
(RM 3.0.2  win8.1 x32)

脚本文件

脚本文件


通过这个Lua脚本,你可以直接将指定的亮度、对比度、饱和度应用到Meter上,
省去了繁琐的计算。
图像染色不透明度也是一样。
此外如果你想对图片应用某个颜色滤镜,脚本也能帮你做到。
包含的滤镜有灰度、反色、红蓝反色、褐色、黑白、偏光、白色到Alpha7种滤镜。

ColorMatrix.lua脚本有两种工作模式,(模式1完成后灵机一动想到了模式2)
为了更好理解这两种模式,我专门制作了两个皮肤来演示。

皮肤介绍

皮肤1演示第一种工作方式

皮肤1演示第一种工作方式

皮肤1

这个皮肤演示了使用!CommandMeasure指令向脚本传送参数,进而实现设置矩阵。
点击右下面三个颜色条,相应的参数会被通过Bang传递到脚本中,
脚本计算矩阵并应用到右侧图片的右半边,与右半边原图像对比。
同时脚本将计算的矩阵返回到Measure值,经过修饰后显示在皮肤上。
另外点击右半边图片,脚本会计算应用一个滤镜效果的矩阵。
点击左半边图片,皮肤会切换到下一张图片。
右键菜单里也有很丰富的用户自定义菜单项

使用向哪些函数传递哪些参数,见皮肤文件夹中的“ColorMatrix使用说明.txt”

示例:
设置myMeter 亮度 0.2 对比度 1.56 饱和度 0.92
  1. [!CommandMeasure Script "SetMatrix {b=0.2, c=1.56, s=0.92, meter='myMeter'}"]
  2. [!Redraw]
复制代码

皮肤2演示第二种工作方式

皮肤2演示第二种工作方式

皮肤2

第二个皮肤首先省去了第一个皮肤那么多很好看但并不是为了演示脚本的代码,
大量的操作被转移到右键菜单的Custom Skin Action中了
在这个皮肤中,右侧的图片被分割成三个区域:
  原图像、使用ImageTint和ImageAlpha处理后的图像、使用矩阵处理后的图像。
皮肤中,脚本不再向第一个皮肤那样需要!CommandMeasure传递矩阵参数,
而是直接从Meter节点下的5个选项读取矩阵参数。这五个选项的选项值同时显示在皮肤上。
Brightness, Contrast, Saturation, ImageTint, ImageAlpha.

这样要修改一个Meter的颜色矩阵,只要用!SetOption修改某个选项,
然后命令脚本重新扫描这个Meter就可以了。
(皮肤加载时会进行第一次扫描。)

使用向哪些函数传递哪些参数,也见皮肤文件夹中的“ColorMatrix使用说明.txt”

示例:
设置Meter1与Meter2,染色FF8800,饱和度 150
  1. [!SetOption Meter1 ImageTint FF8800] [!SetOption Meter2 ImageTint FF8800]
  2. [!SetOption Meter1 Saturation 150] [!SetOption Meter2 Saturation 150]
  3. [!CommandMeasure Script "scanMeter('Meter1 | Meter2')"]
复制代码
以上


脚本信息
<ColorMatrix.lua>
        By: 风飏
        Version: 0.1.0
        Update: 2014/3
        License: Creative Commons BY-NC-SA 3.0
        Information: 脚本用于计算和应用Meter的颜色矩阵。既可以通过Bang指令命令脚本计算一个矩阵并应用到Meter,也可以命令脚本扫描一些Meter,由Meter下的特定选项来设置矩阵。

下载

ColorMatrix.rar (100.18 KB, 下载次数: 43)

评分

参与人数 2心动值 +1 活跃值 +12 技术值 +1 收起 理由
devil灬冥羽 + 2 又一神器诞生
萝莉头 + 1 + 10 + 1 原创神马的最爱了≧▼≦

查看全部评分

本帖被以下淘专辑推荐:

回复

使用道具 举报

签到天数: 7 天

[LV.3]偶尔看看II

发表于 2020-8-7 14:49:04 | 显示全部楼层

功能很强大
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2020-2-19 08:17:46 | 显示全部楼层
感谢大佬分享
回复

使用道具 举报

签到天数: 74 天

[LV.6]常住居民II

发表于 2019-6-9 19:57:10 | 显示全部楼层
谢谢分享。。。。
回复

使用道具 举报

该用户从未签到

发表于 2018-8-15 00:38:21 | 显示全部楼层
皮肤中,而是直接从Meter节点下的5个选项读取矩阵参数
回复

使用道具 举报

该用户从未签到

发表于 2018-8-14 22:32:52 | 显示全部楼层
相应的参数会被通过Bang传递到脚本中
回复

使用道具 举报

该用户从未签到

发表于 2018-8-14 20:27:16 | 显示全部楼层
脚本也能帮你做到
回复

使用道具 举报

该用户从未签到

发表于 2018-8-14 19:24:28 | 显示全部楼层
功能很强大
回复

使用道具 举报

该用户从未签到

发表于 2018-8-14 18:21:44 | 显示全部楼层
此外如果你想对图片应用某个颜色滤镜
回复

使用道具 举报

该用户从未签到

发表于 2018-8-14 17:18:58 | 显示全部楼层
与右半边原图像对比
回复

使用道具 举报

该用户从未签到

发表于 2018-8-14 16:16:16 | 显示全部楼层
任何包含图片的Meter都可以通过5个选项来设置颜色矩阵调整图像:
回复

使用道具 举报

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

本版积分规则

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