canon-sdk-java:用 Java 操控佳能相机
文章目录canon-sdk-java用 Java 操控佳能相机canon-sdk-java用 Java 操控佳能相机Blackdread 维护的 canon-sdk-java 项目在 GitHub 上拿到了 116 个 Star它把佳能 EOS 数码相机的 EDSDK 接口封装成了 Java 库方便开发者在 Java 环境里直接控制相机。项目底层基于佳能 EDSDK 13.10.0 的头文件生成绑定这个版本发布于 2019 年 2 月 23 日。整库拆成两个模块camera-binding 只做原生接口的 Java 封装camera-framework 在其上构建了命令、事件和线程模型绝大多数用户直接用 framework 就够了。支持的功能覆盖了拍摄相关的核心动作拍摄并下载照片设置光圈、ISO 等参数实时取景 live view多台相机同时控制可扩展的录像实现运行环境要求 Java 8 及以上已在 JDK 8、11、14 等版本上验证通过。32 位与 64 位系统均支持。Mac OSX 暂未适配但作者提到改动量集中在 library loader 这一处社区贡献者改一改就能跑起来。引入方式是标准 Maven 依赖dependencygroupIdorg.blackdread/groupIdartifactIdcamera-framework/artifactIdversionput version here/version/dependency只需要 binding 的话把 artifactId 换成 camera-binding 即可。使用示例放在camera-framework/src/test/java/org/blackdread/cameraframework/demo包下涵盖了连接相机、设置参数、触发拍摄等常见操作可以直接照着抄。EDSDK 库本身需要从佳能官方申请三个区域的开发者门户都开放注册Canon Europe 面向欧洲Canon Asia 面向亚洲Canon USA 面向北美。设计上有一个细节值得注意所有返回集合或 Map 的方法都应被视作不可变即便底层实现没有用 ImmutableList。除非 javadoc 明确标注可变否则作者保留随时切到不可变集合的权利。调用方如果尝试往里塞元素将来某次升级就可能踩坑。项目起源于作者对早期 edsdk4j 库的不满原仓库长期无人维护作者索性从头重写采用了完全不同的架构。代码质量这块接入了 SonarCloud 做持续分析质量门、覆盖率、Bug 数和漏洞数都在监控范围内CI 走的是 GitHub Actions 的 Java CI workflow。商业化支持也是开放的企业用户想获得技术支持、定制开发或赞助可以通过 LinkedIn 联系作者 Yoann Caplain也可以走邮件表单提交需求。LinkedIn 联系作者 Yoann Caplain也可以走邮件表单提交需求。