#raspberry-pi #synology #slideshow #synology-photos #digital-photo-frame

bin+lib syno-photo-frame

为 Synology Photos 相册提供的全屏幻灯片

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

Download history 6/week @ 2024-06-29 58/week @ 2024-07-06 106/week @ 2024-07-20 6/week @ 2024-07-27

每月 112 次下载

GPL-3.0-or-later

1MB
3K SLoC

Syno Photo Frame

Synology Photos 为 Raspberry Pi 提供的全屏幻灯片。

功能包括速度控制、过渡效果和模糊背景填充。

Extra space gets blurry background

如果您喜欢这个项目,给它点个赞 ⭐,或者考虑成为 :)

为什么?

我开发这个应用程序是为了一个使用连接到监视器的 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 上

  1. 在 Synology Photos 中创建一个 相册 并将照片添加到其中(注意“相册”与“文件夹”之间的区别)。
  2. 点击相册中的“共享”按钮。
  3. 勾选“启用共享链接”选项。
  4. 复制/写下共享链接 - 您在稍后设置 Raspberry Pi 上的应用程序时需要它。
  5. 将隐私设置设置为“公共”选项之一。
  6. 可选:启用链接保护。如果设置了密码,请在运行应用时使用 --password 选项提供它。在通过互联网或不可信的局域网访问 Synology Photos 的情况下,建议确保您的分享链接使用 HTTPS(而不是 HTTP)方案,以防止暴露密码。
  7. 点击保存。
Album Sharing

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:从源代码构建

  1. 发布 下载 syno-photo-frame_X.Y.Z_arm64.deb 软件包。

  2. 更新系统

    sudo -- sh -c ' \
    apt update && \
    apt upgrade -y'
    
  3. 使用 cd 进入已下载软件包的目录,并安装应用

    sudo apt install ./syno-photo-frame_*_arm64.deb
    

选项 2:从源代码构建

注意:这些说明假设基于 Debian 的 Linux 发行版,但调整它们应使您能够在几乎任何具有 Rust 和 SDL 的平台上构建应用。

  1. 如果您尚未安装 Rust(或使用 替代方法:使用 Docker 构建)。

  2. 安装构建依赖项

    sudo -- sh -c ' \
    apt update && \
    apt upgrade -y && \
    apt install -y \
        libsdl2-dev \
        libssl-dev'
    
  3. 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