FNPhotograph 模块的使用
简介
APICloud 拍照模块
https://docs.apicloud.com/Client-API/Func-Ext/FNPhotograph
正如文档所说,有2种拍照的方案。
(1) 通过 open 接口打开一个自带 UI 的拍照视图…
(2) 开发者可通过 openCameraView 接口打开一个纯视频界面的 frame
下面分开进行介绍
方式1
自带拍照界面,使用方便,流畅。
var FNPhotograph = api.require('FNPhotograph');
FNPhotograph.open({
path: 'fs://savePath',
album: false ,
quality: 'medium' // quality: 'low'
}, function(ret){
if (ret.eventType == "show") {
} else if (ret.eventType == "takePhoto") {
alert(ret.imagePath);
FNPhotograph.close();
} else if (ret.eventType == "close") {
alert("close");
} else {
alert(JSON.stringify(ret));
}
});
备注:有时候机型性能不太好,打开摄像头可能得等一段时间。
方式2
适合自定义界面的需求,比如:不想要选择系统相册图片的功能。
// 拍照
var FNPhotograph = api.require('FNPhotograph');
FNPhotograph.openCameraView({
rect: {
x: 0,
y: 0,
w: 'auto',
h: api.winHeight - 100
},
orientation: 'landscapeRight',
fixedOn: api.frameName
}, function(ret) {
if (!ret.status) {
alert('相机打开失败,请确认已经授权使用相机!');
}
// alert('openCameraView ret:'+JSON.stringify(ret));
})
可以调整页面的高度,在页面底部放上一个拍照按钮,通过点击该按钮,调用拍照功能,拍照成功后,自动关闭照相页面。
var FNPhotograph = api.require('FNPhotograph');
FNPhotograph.takePhoto({
quality: 'medium',
path: examPhotoPath,
album: false
}, (ret) => {
var imagePath = (ret.imagePath);
FNPhotograph.closeCameraView((ret) => {
if (ret) {
alert("拍照成功!");
}
});
});
如果app采用横盘的方式进行拍摄,拍出的照片,会自动旋转了90度。
【解决方法】简单地,在显示拍摄照片的地方,添加 css 样式旋转,纠正旋转的照片
style="transform:rotate(-90deg); "
拍照像素问题
设为低像素
FNPhotograph.takePhoto({
quality: 'low',
qualityValue: 12,
path: examPhotoPath,
...
总结
官方模块文档中的例子代码,有些地方参数写得不准,需要核对文档参数
拍照模块调试起来比较麻烦,要多耐下性子进行调试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)