9 个版本
0.2.2 | 2023年4月9日 |
---|---|
0.2.1 | 2023年4月9日 |
0.1.5 | 2023年2月25日 |
#262 in 操作系统
60 每月下载量
480KB
3K SLoC
kapy
Kapy 是一个简单的工具,旨在将数码相机照片从SD卡复制到磁盘,并支持转换。此工具简化了将照片从相机传输到电脑的过程,同时允许在复制过程中进行任何必要的图像转换。
- 从JPEG转换为HEIC/AVIF以减小图像大小
- 将Google Drive上.gpx文件的GPS信息合并到EXIF中
- 根据EXIF比率信息调整图像大小和压缩比
构建
在macOS上构建
如果你使用Homebrew (https://brew.sh.cn/),可以轻松安装所需的包。
安装Homebrew后,你可以运行以下命令来安装所需的包和构建应用程序
$ brew install pkg-config imagemagick exiv2 libssh
$ CLIENT_ID={YOUR_CLIENT_ID} CLIENT_SECRET={YOUR_SECRET} cargo build
如果你没有使用Homebrew,请安装以下所需的包并相应地设置环境变量
- ImageMagick库 (https://imagemagick.org.cn/script/download.php)
- IMAGE_MAGICK_DIR - ImageMagick的安装目录
- IMAGE_MAGICK_LIB_DIRS - 分隔的库目录列表
- IMAGE_MAGICK_INCLUDE_DIRS - 分隔的包含目录列表
- IMAGE_MAGICK_LIBS - 要链接的库列表
- Exiv2库 (https://exiv2.org/download.html)
- EXIV2_INCLUDE_DIRS - 包含目录列表
- EXIV2_LIB_DIRS - 库目录列表
- libssh库 (https://www.libssh.org/get-it/)
- LIBSSH_INCLUDE_DIRS - 包含目录列表
- LIBSSH_LIB_DIRS - 库目录列表
在Windows上构建
先决条件
- ImageMagick库 (https://imagemagick.org.cn/script/download.php)
- 提供预构建的二进制安装程序。
- 在安装过程中,应选中安装C/C++头文件的复选框。
- 您需要设置以下Windows环境变量
- IMAGE_MAGICK_DIR={YOUR_MAGICK_INSTALLATION_DIR}
- Exiv2库 (https://exiv2.org/download.html)
- 以.zip压缩文件的形式提供预构建的二进制文件。
- 您需要设置以下Windows环境变量
- EXIV2_INCLUDE_DIRS={YOUR_EXIV2_INCLUDE_DIR}
- EXIV2_LIB_DIRS={YOUR_EXIV_LIB_DIR}
- libssh库 (https://www.libssh.org/get-it/)
- 作为Microsoft的包管理器vcpkg中的软件包提供。
- vcpkg (https://vcpkg.io/en/getting-started.html)应首先安装。
- 安装后,安装库:
vcpkg install --triplet=x64-windows libssh
- 您需要设置以下Windows环境变量
- LIBSSH_INCLUDE_DIRS={您的LIBSSH头文件目录}
- LIBSSH_LIB_DIRS={您的LIBSSH库目录}
- clang库(https://releases.llvm.org/download.html)
- 提供预构建的二进制安装程序。
- 您需要设置以下Windows环境变量
- LIBCLANG_PATH={您的LLVM二进制目录}
- NASM可执行文件(https://www.nasm.us/)
- 提供预构建的二进制安装程序和仅可执行文件
- 您需要将可执行文件安装的目录添加到您的PATH。
- libheif库(https://github.com/strukturag/libheif)
- 作为Microsoft的包管理器vcpkg中的软件包提供。
- vcpkg (https://vcpkg.io/en/getting-started.html)应首先安装。
- 安装后,安装库:
vcpkg install --triplet=x64-windows-static-md
- 您需要设置与
vcpkg
相关的环境变量- VCPKG_ROOT={您的VCPKG根目录}
- 您需要将VCPKG_ROOT目录追加到您的PATH环境变量中。
构建
> set CLIENT_ID={YOUR_CLIENT_ID}
> set CLIENT_SECRET={YOUR_SECRET}
> set IMAGE_MAGICK_DIR={YOUR_MAGICK_INSTALLATION_DIR}
> set EXIV2_INCLUDE_DIRS={YOUR_EXIV2_INCLUDE_DIR}
> set EXIV2_LIB_DIRS={YOUR_EXIV_LIB_DIR}
> set LIBSSH_INCLUDE_DIRS={YOUR_LIBSSH_INCLUDE_DIR}
> set LIBSSH_LIB_DIRS={YOUR_LIBSSH_LIB_DIR}
> set LIBCLANG_PATH={YOUR_LLVM_BIN_DIR}
> cargo build
用法
$ kapy clone -c ~/.kapy.yaml --from /Volumes/Untitled/DCIM/108HASBL --to ~/images
免责声明
要使用您自己的Google OAuth 2.0 client_id和client_secret访问Google Drive API,您需要在Google开发者控制台中设置一个项目并创建OAuth 2.0凭证。获取凭证后,您可以将CLIENT_ID和CLIENT_SECRET作为环境变量设置,或者在代码中直接包含它们。
$ CLIENT_ID={YOUR_CLIENT_ID} CLIENT_SECRET={YOUR_SECRET} kapy login
$ kapy clone
如果您遇到登录问题,可以按照以下方式重新登录。
$ kapy clean
$ CLIENT_ID={YOUR_CLIENT_ID} CLIENT_SECRET={YOUR_SECRET} kapy login
或者,您可以在编译时分配CLIENT_ID和CLIENT_SECRET值。
$ CLIENT_ID={YOUR_CLIENT_ID} CLIENT_SECRET={YOUR_SECRET} cargo install kapy
OR
$ CLIENT_ID={YOUR_CLIENT_ID} CLIENT_SECRET={YOUR_SECRET} cargo build
由于Google Drive API可以访问用户的敏感信息,它有一个严格的应用程序批准流程。这个应用程序最初是为我个人使用而创建的,很难符合Google严格的批准流程。您应该参考以下文档以生成自己的Google OAuth 2.0凭证
https://developers.google.com/identity/protocols/oauth2/native-app
以下API作用域必须指定
- https://www.googleapis.com/auth/drive.metadata.readonly:查看您的Google Drive文件信息。
- https://www.googleapis.com/auth/drive.readonly:查看和下载您所有的Google Drive文件。
配置
- 示例
default_path:
from: /Volumes/Untitled/DCIM/108HASBL
to: ~/images
polices:
- rate: [5]
commands:
resize: 100% # default value; ignore it
format: preserve # default value
- rate: [4]
commands:
quality: 95%
format: heic
- rate: [1,2,3]
commands:
resize: 50% # resize image to 50%
quality: 95%
format: heic
- rate: [0]
commands:
resize: 36m # resize image to 36m pixels
quality: 92%
format: heic
依赖项
~32–49MB
~898K SLoC