服务器版本:7.0.5
我最近偶然看到Nextcloud有一个预览Camera raw文件的应用,我想这可能有部分人会有这个需求,特别是对于摄影爱好者、摄影从业人员等,之前我也在Seahub开发的时候想过要这个功能,现在我想分享出来。
代码质量并不高,希望能有人给予我一些意见。
从网上查阅资料发现 python 有一个库:rawpy,是专门用来处理Camera raw文件的,但是只支持python3,所以我将他写成一个外部脚本,然后在预览seafile文件的时候去执行这个脚本,生成缓存文件并返回到客户端,之后删除缓存文件,这样就完成了整个转换预览的过程。
由于代码写的并不好,所以没提交Pull Request,后续打算尝试将rawpy这个库移植到seahub里面,这样python2也能用了
import sys
import rawpy
import imageio
if len(sys.argv) != 3:
print("Invalid argument")
sys.exit(1)
src_path, dst_path = sys.argv[1:]
with rawpy.imread(src_path) as raw:
rgb = raw.postprocess(output_bps=16, use_camera_wb=True, bright=1.2)
imageio.imsave(dst_path, rgb)