1 个不稳定版本
0.1.0 | 2024 年 1 月 19 日 |
---|
#1214 在 文件系统
155KB
3.5K SLoC
avis-imgv
avis-imgv 是一个快速、可配置且支持色彩管理的图像查看器,使用 Rust 和 egui 构建。我的目标是使其快速并能够通过用户配置适应任何硬件性能。
目前它仅在 Linux 上进行了测试,但我看不到为什么它不能在 Windows/macOS 上工作。配置和缓存目录通过平台无关的 directories
crate 获取。
依赖项
- coreutils(用于安装)
- sqlite
- exiftool
- libwebp 用于 WebP
- libdav1d 用于 AVIF(如果你在 cargo.toml 中启用它)
构建
安装 rust 后,只需运行
cargobuild --release
安装
查看 install.sh
脚本。在大多数系统上都能工作,但可能需要调整。它仍然处于原始状态,并且大多数系统尚未测试。目前仅适用于 Linux。
色彩管理
色彩管理是通过 qcms 实现的。
目前 avis-imgv 随附三个(sRGB、Adobe RGB 和 Display P3)配置文件。根据 exiftool 标签 "Profile Description" 选择配置文件。这是相当宽松的,因为我们还可以匹配更具体的配置文件,如 RT_sRGB
与 srgb。对此行为有建议。如果没有匹配到配置文件,将尝试提取,尽管这对最大性能来说并不理想。因此建议提交包含附加配置文件的 PR。
默认输出配置文件为 sRGB,并且仅支持内置配置文件。如果您需要额外的配置文件,可以提交 PR 或编辑 icc.rs
以添加您本地构建所需的配置文件。它可以在 config.yaml
中进行配置。
本页的sRGB和Adobe RGB(ClayRGB)来自elles_icc_profiles。
支持的图像格式。
默认情况下使用image
crate的默认功能标志。
计划中的功能
- 允许按名称或日期排序
- 主题配置
用户操作和上下文菜单
avis-imgv支持添加用户操作,包括通过快捷键或右键单击图像时的上下文菜单。用户操作是简单的命令,将生成并接受参数。
目前支持三个参数
- {} 完整路径
- {.} 无扩展名的路径
- {//} 父路径(不带最后一个斜杠)
建议使用简单的命令。如果您需要更复杂的行为,可以使用脚本并将路径作为参数传递。
示例
- 'gimp {}' - 在GIMP中打开文件。
- 'darktable {.}.RAF' - 在darktable中打开相邻的富士胶片raw文件。这个示例最好与检查文件是否存在的脚本一起使用。
- 'rate.sh {.}.RAF 5' - 运行脚本,写入包含图像评分的基本xmp。在示例文件夹中提供。
回调
执行用户操作成功后,我们可以通过指定回调来自动运行一个函数。为此,只需在上下文菜单或用户操作下添加条目即可。示例配置中提供了一个示例。
- Pop - 从集合中移除所选图像
- Reload - 重新加载所选图像
- ReloadAll - 重新加载整个集合
配置
配置文件应为:~/.config/avis-imgv/config.yaml
。示例在examples/config.yaml中提供。
通用
键 | 值 | 默认 |
---|---|---|
limit_cached | 缓存文件元数据的最大数量 | 100000 |
output_icc_profile | 输出icc配置文件 | srgb |
text_scaling | 文本缩放 | 1.25 |
画廊
键 | 值 | 默认 |
---|---|---|
loaded_images | 每个方向中加载的图像数量。根据您想使用的RAM量进行调整。 | 5 |
should_wait | 在前进到下一个图像之前是否应等待图像加载完成 | true |
metadata_tags | 在图像信息侧面板(当打开时)中可见的元数据 | 日期/时间原始,创建日期,相机型号名称,镜头型号,焦距,光圈值,曝光时间,ISO,图像大小,色彩空间,目录 |
frame_size_relative_to_image | 相对于最小图像边的白色边框大小 | 0.2 |
scroll_navigation | 是否应使用滚动进行导航 | true |
name_format | 底部栏中文件名的格式。使用 $(#exif_tag#) 表达式。如果未找到 EXIF 标签,则整个表达式将被忽略。例如:$(#File Name#)$( • ƒ#Aperture#)$( • #Shutter Speed#)$( • #ISO# ISO) -> DSCF6114.JPG • ƒ5.6 • 1/500 • 200 ISO |
多图库
键 | 值 | 默认 |
---|---|---|
images_per_row | 每行应显示多少张图片 | 3 |
preloaded_rows | 每个方向上应加载和保留在内存中的屏幕外行数 | 2 |
simultaneous_load | 应允许同时加载多少张图片 | 8(根据核心数或您想对PC进行的工作量进行调整) |
margin_size | 图片之间的边距大小 | 10. |
默认快捷键
可以在设置中配置快捷键。检查 examples/config.yaml 以获取示例,并检查 keys.txt 以获取有效的键和修饰符。
通用
键 | 动作 |
---|---|
退格键 | 在单图库和多图库之间切换 |
Q | 退出 |
F1 | 切换一个菜单,允许打开文件夹或文件 |
Ctrl + L | 显示导航栏 |
T | 显示目录树 |
Ctrl + F | 扁平(从所有子目录读取文件) |
Ctrl + W | 监视目录以查找文件更改(创建、更新) |
单图库
键 | 动作 |
---|---|
F | 使图片适合屏幕 |
G | 切换围绕图像的白色边框 |
I | 显示包含图像元数据的侧边栏 |
空格键 | 切换缩放 |
Ctrl+滚动 | 缩放图片 |
滚动 | 下一张或上一张 |
箭头键 | 下一张或上一张 |
Alt + 1 | 将放大倍数设置为 100% |
H | 水平适合 |
V | 垂直适合 |
多图库
键 | 动作 |
---|---|
空格键 | 向下滚动 |
双击 | 在所选图片上打开单图库 |
Ctrl+滚动 | 增加/减少每行的图片数量 |
+ | 增加每行的图片数量 |
- | 减少每行的图片数量 |
依赖项
~26–64MB
~1M SLoC