logo
0
0
WeChat Login
Initial commit: ARW to HEIF Converter

ARW to HEIF Converter

将 SONY 相机的 RAW 文件 (*.ARW) 转换为 HEIF 格式,同时保持高色深度(12bit/14bit)。

功能特性

  • 读取 SONY ARW RAW 文件
  • 使用 libraw 进行去马赛克处理
  • 保持原始色深度(12bit/14bit)
  • 输出为 HEIF 格式(HEVC 编码)
  • 保留 EXIF 元数据
  • 支持单文件和批量转换
  • 多种去马赛克算法可选

安装

前置要求

  • Python 3.10+
  • uv 包管理器
  • libraw 系统库

安装 libraw

Ubuntu/Debian:

sudo apt-get install libraw-dev

macOS:

brew install libraw

Fedora/RHEL:

sudo dnf install libraw-devel

安装项目

cd arw2heif uv sync

使用方法

单文件转换

uv run arw2heif photo.ARW

指定输出路径:

uv run arw2heif photo.ARW -o output.heif

批量转换

转换目录中的所有 ARW 文件:

uv run arw2heif ./raw_photos --batch

指定输出目录:

uv run arw2heif ./raw_photos --batch -o ./heif_photos

高级选项

设置质量(0-100):

uv run arw2heif photo.ARW -q 90

使用半尺寸处理(更快,质量略低):

uv run arw2heif photo.ARW --half-size

选择去马赛克算法:

uv run arw2heif photo.ARW --demosaic ahd

可选的去马赛克算法:

  • auto - 自动选择(默认,使用 AHD)
  • linear - 线性插值(最快)
  • vng - VNG 插值
  • ppg - PPG 插值
  • ahd - AHD 插值(高质量)

完整示例

uv run arw2heif ./raw_photos --batch -o ./heif_photos -q 95 --demosaic ahd

技术细节

色深度处理

  • 读取 ARW 文件时提取原始 bit depth 信息
  • 输出时使用 16-bit 处理以保持最大动态范围
  • HEIF 文件保存时尝试保持高色深度(12bit/14bit)

色彩空间处理

  • 使用 libraw 内置的去马赛克算法处理 Bayer 模式数据
  • 应用相机白平衡设置
  • 输出为 RGB 色彩空间

EXIF 元数据

保留的元数据包括:

  • 相机制造商和型号
  • ISO 设置
  • 快门速度
  • 光圈值
  • 焦距
  • 拍摄日期时间

项目结构

arw2heif/ ├── pyproject.toml ├── README.md ├── src/ │ └── arw2heif/ │ ├── __init__.py │ ├── converter.py │ └── cli.py └── main.py

依赖库

  • libraw-python - RAW 文件读取
  • pillow-heic - HEIF 格式支持
  • pillow - 图像处理
  • numpy - 数组操作
  • click - CLI 接口
  • piexif - EXIF 元数据处理

开发

运行开发模式:

uv run python -m arw2heif.cli photo.ARW

许可证

MIT License