6 个版本 (3 个重大更新)
0.4.0 | 2022年6月25日 |
---|---|
0.3.1 | 2022年6月25日 |
0.2.0 | 2022年6月25日 |
0.1.3 | 2022年6月25日 |
#2806 在 命令行工具
每月64次 下载
57KB
189 行
cliblur
一个小巧快速的 Rust 工具,可以具有以下功能来模糊图像:
- 缩放因子
- 缩小过滤器
- 放大过滤器
- 灰度化
- 仅模糊特定区域
示例
如你所见,默认行为是按 scale down
将图像缩小 25%
,对于缩小,将应用高斯过滤器。缩小后,使用 nearest filter
进行放大。这种行为使得文本难以阅读,但图像本身非常清晰!<3
别担心,你可以更改缩小和放大过滤器! :)
使用这个工具的好处是什么?
当我锁定我的电脑或笔记本电脑时,我喜欢截图当前状态,模糊图像,并将模糊后的图像设置为锁屏。所以,这就是它,只是一个模糊图像的小工具。 :)
如何模糊和锁定屏幕
如果你使用 i3,你可以安装 cliblur
并创建一个小 bash 脚本来创建截图,模糊它并锁定你的屏幕。 :)
#!/usr/bin/env bash
cd "$(dirname "$0")"
IMAGE=/tmp/lock.png
scrot -q 100 $IMAGE
cliblur $IMAGE
i3lock -i $IMAGE
rm $IMAGE
为什么不用 convert?
因为 convert 很慢...我是说真的很慢...我喜欢截图、模糊并设置为我的锁定屏幕,但 convert 太慢了。在 16 个核心上需要 2 秒钟(是的,所有的都在运行...)。所以我创建了这个小工具,它只需 ~460ms 就可以完成模糊效果,并且只需要一个线程(而不是 16 个线程的 100%)。 :)
下一个原因,模糊效果本身,正如你在示例图像中所看到的,图像非常清晰,但也被模糊了。这是因为我用高斯缩小图像,用最近邻放大图像。所以它是模糊了一个清晰的图像,没有暴露任何文本!太棒了!<3
安装
只需用 crates 安装它,就这么简单! :)
cargo install cliblur
你也可以安装编译好的版本或自己编译。 :)
请参阅“安装(高级)”章节。 :3
如何使用它
它默认情况下使用默认参数即可运行。你只需要运行命令并指定文件
cliblur /tmp/lock.png
请注意,如果您只设置了输入文件,相同的文件将被覆盖!您可以通过写入目标文件来避免这种情况,就像您在这里看到的那样。
cliblur /tmp/lock.png /tmp/bluredlock.png
您可以修改模糊效果的设置。有一个可以更改的 scale
,这样模糊效果就会增加或减少。顺便说一句,您还可以更改放大和缩小滤镜。如果您使用 gaussian
滤镜为 scale down
和 nearest
为 scaling up
,看起来有点 8 位的样子。如果您只想模糊图像,您可以使用 gaussian
滤镜为 scale down
和 scale up
。您还可以指定模糊效果应该开始和结束的位置,请参阅有关 -x
、-
、-
和 -
的文档以获取更多信息。只需稍微尝试一下,直到找到合适的东西。文档可以在 --help
中找到。 :)
$ cliblur --help
cliblur 0.3.1
Daniél Kerkmann <[email protected]>
A faster and more usefule image blur tool.
USAGE:
cliblur [OPTIONS] <INPUT_FILE> [OUTPUT_FILE]
ARGS:
<INPUT_FILE> Input file which will be used
<OUTPUT_FILE> Specify the output file, otherwise the input file will be overwritten
OPTIONS:
-d, --debug
Set logging level to debug
-g, --grayscale
Remove color from image
-h, --height <HEIGHT>
height of the blur effect, otherwise it will blur till the end
--help
Print help information
-l, --license
Print license information
-r, --resize-down-filter <RESIZE_DOWN_FILTER>
Will apply the filter on resize down [default: gaussian] [possible values: catmull-rom,
gaussian, lanczos3, nearest, triangle]
-R, --resize-up-filter <RESIZE_UP_FILTER>
Will apply the filter on resize up [default: nearest] [possible values: catmull-rom,
gaussian, lanczos3, nearest, triangle]
-s, --resize-scale <RESIZE_SCALE>
Set the resize scale ratio from resizing it down and up [default: 25]
-V, --version
Print version information
-w, --width <WIDTH>
width of the blur effect, otherwise it will blur till the end
-x, --x <X>
x coordinate where the blur should start [default: 0]
-y, --y <Y>
y coordinate where the blur should start [default: 0]
安装(高级)
安装编译版本(gitlab)
真的很容易!真的,相信我。 :3
# download the binary file
curl -L https://gitlab.com/kerkmann/cliblur/-/jobs/artifacts/main/raw/cliblur\?job\=release --output cliblur
# make file executable
chmod +x cliblur
# just copy the binary file to `/usr/local/bin/cliblur`
sudo cp cliblur /usr/local/bin/cliblur
自行构建(从源代码)
您不相信预构建的二进制文件?幸运的是,您可以自己构建它! :3
# clone the project
git clone https://gitlab.com/kerkmann/cliblur
# change into the directory
cd cliblur
# compile it yourself
cargo build --release
# (optional) make the binary smaller
upx --best --lzma target/release/cliblur
# make file executable
chmod +x target/release/cliblur
# just copy the binary file to `/usr/local/bin/cliblur`
sudo cp target/release/cliblur /usr/local/bin/cliblur
要做的几件事
- 更好的错误处理而不是恐慌
- 测试
依赖关系
~7.5MB
~108K SLoC