概述

本站部分文档为 afilmory.xox.im 的英译中版本。

Prep 是来自 Afilmory Prep 融合了自动对焦 (AF)、光圈 (光线控制)、胶片 (复古媒介) 和记忆 (捕捉的瞬间)。

一个使用 React + TypeScript 构建的现代照片画廊网站,支持从多个存储源 (S3、GitHub) 自动同步照片,具有高性能 WebGL 渲染、瀑布流布局、EXIF 信息显示、缩略图生成等功能。

在线照片画廊示例:

🌟 特性

核心功能

  • 🖼️ 高性能 WebGL 图像渲染器 - 自定义 WebGL 组件,支持流畅的缩放和平移操作
  • 📱 响应式瀑布流布局 - 基于 Masonic 实现,适配不同屏幕尺寸
  • 🎨 现代 UI 设计 - 使用 Tailwind CSS 和 Radix UI 组件库构建
  • 增量同步 - 智能变化检测,仅处理新增或修改的照片
  • 🌐 国际化支持 - 多语言支持
  • 🔗 OpenGraph 集成 - 社交媒体分享的 OpenGraph 元数据

图像处理

  • 🔄 HEIC/HEIF 格式支持 - 自动转换苹果设备 HEIC 格式
  • 📷 TIFF 格式支持 - 自动转换 TIFF 格式
  • 🖼️ 智能缩略图生成 - 多尺寸缩略图,优化加载性能
  • 📊 EXIF 信息显示 - 完整的拍摄参数,包括相机型号、焦距、光圈等
  • 🌈 Blurhash 占位符 - 优雅的图像加载体验
  • 📱 Live Photo 支持 - 检测和显示 iPhone Live Photos
  • ☀️ HDR 图像支持 - 显示 HDR 图像

高级特性

  • 🎛️ 富士胶片配方 - 读取和显示富士相机胶片模拟设置
  • 🔍 全屏查看器 - 支持手势的图像查看器
  • 🏷️ 文件系统标签 - 基于文件系统自动生成标签
  • 并发处理 - 多进程/多线程并发处理支持
  • 🗂️ 多存储支持 - S3、GitHub 等存储后端
  • 📷 分享图像 - 分享图像到社交媒体或嵌入 iframe 到您的网站
  • 🗺️ 交互式地图浏览器 - 使用 MapLibre 基于 EXIF 数据中的 GPS 坐标进行照片地理可视化

🏗️ 技术架构

前端技术栈

  • React 19 - 最新版本的 React 与编译器
  • TypeScript - 完整的类型安全
  • Vite - 现代构建工具
  • Tailwind CSS - 原子化 CSS 框架
  • Radix UI - 无障碍组件库
  • Jotai - 状态管理
  • TanStack Query - 数据获取和缓存
  • React Router 7 - 路由管理
  • i18next - 国际化

构建系统

  • Node.js - 服务端运行时
  • Sharp - 高性能图像处理
  • AWS SDK - S3 存储操作
  • Worker Threads/Cluster - 并发处理
  • EXIF-Reader - EXIF 数据提取

存储架构

采用适配器模式设计,支持多种存储后端:

  • S3 兼容存储 - AWS S3、MinIO、阿里云 OSS 等
  • GitHub 存储 - 使用 GitHub 仓库作为图像存储

📄 许可证

MIT 许可证 © 2025 Innei

如果这个项目对您有帮助,请给它一个 ⭐️ 星标支持!

创建时间
修改时间