16 个版本 (破坏性更新)
0.13.0 | 2024 年 7 月 21 日 |
---|---|
0.12.1 | 2024 年 2 月 17 日 |
0.11.0 | 2024 年 2 月 10 日 |
0.7.0 | 2023 年 12 月 8 日 |
0.5.0 | 2023 年 6 月 28 日 |
在 硬件支持 中排名 110
每月 112 次下载
1MB
3K SLoC
Syno Photo Frame
Synology Photos 为 Raspberry Pi 提供的全屏幻灯片。
功能包括速度控制、过渡效果和模糊背景填充。
为什么?
我开发这个应用程序是为了一个使用连接到监视器的 Raspberry Pi 的 DIY 数码照片框项目(它在 Pi Zero 2 上运行得很好)。目标是直接从我的 Synology NAS 通过局域网获取照片。
为什么不在网页浏览器中直接使用 Synology Photos?有两个原因。首先,截至编写时,Synology Photos 的当前版本(1.6.x)不允许调整幻灯片速度,并且每 3 或 4 秒就更换照片 - 对于照片框来说太快了。其次,运行完整的网页浏览器比简单的静态图像应用程序更占用资源,这对于使用 Raspberry Pi,尤其是 Zero 版本来说很重要。
设置
Synology Photos (NAS)
假设 Synology Photos 软件包已安装到 DSM 上
- 在 Synology Photos 中创建一个 相册 并将照片添加到其中(注意“相册”与“文件夹”之间的区别)。
- 点击相册中的“共享”按钮。
- 勾选“启用共享链接”选项。
- 复制/写下共享链接 - 您在稍后设置 Raspberry Pi 上的应用程序时需要它。
- 将隐私设置设置为“公共”选项之一。
- 可选:启用链接保护。如果设置了密码,请在运行应用时使用
--password
选项提供它。在通过互联网或不可信的局域网访问 Synology Photos 的情况下,建议确保您的分享链接使用 HTTPS(而不是 HTTP)方案,以防止暴露密码。 - 点击保存。
Raspberry Pi
假设您是从新的 Raspberry Pi OS Lite 安装开始,网络已设置(因此您可以访问 Synology Photos),并且您可以在 Pi 上访问命令行。
选项 1:从 Debian 软件包安装
发布 包含为 arm64 Linux 架构预构建的 .deb 软件包,适用于 Raspberry Pi 3 及更高版本,以及 Zero 2(假设已安装 Raspbian OS Bookworm 的 64 位版本)。
- 使用
dpkg --print-architecture
检查架构;它应打印 "arm64"。 - 使用
lsb_release -c
检查 Debian 的已安装版本,并确保它说 "bookworm"。
对于其他平台(包括较旧的 Debian 版本,如 "bullseye"),您必须从源代码构建项目 - 请参阅 选项 2:从源代码构建。
-
从 发布 下载
syno-photo-frame_X.Y.Z_arm64.deb
软件包。 -
更新系统
sudo -- sh -c ' \ apt update && \ apt upgrade -y'
-
使用
cd
进入已下载软件包的目录,并安装应用sudo apt install ./syno-photo-frame_*_arm64.deb
选项 2:从源代码构建
注意:这些说明假设基于 Debian 的 Linux 发行版,但调整它们应使您能够在几乎任何具有 Rust 和 SDL 的平台上构建应用。
-
如果您尚未安装 Rust(或使用 替代方法:使用 Docker 构建)。
-
安装构建依赖项
sudo -- sh -c ' \ apt update && \ apt upgrade -y && \ apt install -y \ libsdl2-dev \ libssl-dev'
-
从 crates.io 安装应用(您可以使用相同的命令在发布新版本时更新应用)
cargo install syno-photo-frame
构建完成后,二进制文件位于 $HOME/.cargo/bin/syno-photo-frame
,并且应在您的 $PATH
中可用。
或者,克隆 git 仓库,并在克隆的目录中使用以下命令构建项目
cargo build --release
二进制文件位于 target/release/syno-photo-frame
。
替代方案:使用 Docker 构建
如果您出于某些原因不想安装 Rust 或构建依赖项,但拥有 Docker,则可以使用提供的 Dockerfile 在容器中构建二进制文件和/或 Debian 软件包。请参阅文件中的说明,以这种方式构建应用。
运行
显示帮助信息以查看各种可用选项
syno-photo-frame --help
运行应用
syno-photo-frame {sharing link to Synology Photos album}
如果一切按预期进行,则按 Ctrl-C 杀死应用。
可选内容
增加 Raspberry Pi Zero 的交换空间大小
在运行于低内存系统(如 Pi Zero)上时,100 MB 的交换文件可能太小。请参阅 在 Raspberry Pi 上增加交换空间。
自动启动
要在启动时自动开始幻灯片放映,您可以将其添加到crontab中
crontab -e
在crontab的末尾添加类似的内容
@reboot sleep 5 && /bin/syno-photo-frame https://{share_link} >> /tmp/syno-photo-frame.log 2>&1
请记住,用实际的分享链接替换您的链接,并根据安装方法(dpkg或从crates.io)调整二进制路径。需要一段短的时间来确保某些服务(如网络)已经启动,如果出错,请尝试增加该时间。上述命令将错误信息重定向到日志文件 /tmp/syno-photo-frame.log
。
有关其他(未测试)的替代方案,请参阅例如 这篇文章。
启动/关闭计划
一个合适的数字相框不会全天候运行。关机可以在软件中安排,但启动需要硬件解决方案,例如,对于Raspberry Pi Zero,我使用Witty Pi 3 Mini。
自动亮度
对于我的数字相框项目,我将光传感器连接到Pi的GPIO,以根据环境光自动调整屏幕的亮度。 TSL2591 是此类传感器的一个示例。查看我的 auto-brightness-rpi-tsl2591 项目,以将自动亮度控制添加到您的数字相框。
从随机照片开始并按随机顺序播放
默认情况下,照片按拍摄日期的顺序显示。如果相册非常大,并且启动-关机时间表很短,幻灯片放映可能永远无法显示相册中的一些较晚照片。使用 --random-start
选项通过在随机选择的照片处开始放映来解决此问题,然后正常继续(按拍摄日期顺序)。将此选项添加到启动时间表将每次从不同的照片开始。
或者,使用 --order random
以完全随机顺序显示照片。
更改过渡效果
使用 --transition
(或 -t
)选项来选择更改照片时的过渡效果类型。使用 --help
选项显示有效值。
自定义启动画面
您可以在加载第一张照片时替换默认图像。使用 --splash
选项指向.jpeg文件的位置。
支持
依赖项
~27–41MB
~758K SLoC