大家好!测试发现Android手机上CameraContext.takePhoto拍摄的照片放大了实物。
1、在相同举例上拍摄同一个杯子为例,测试如下:
1)手机自带拍照应用放大1倍的照片:
2)手机自带拍照应用放大2倍的照片:
3)CameraContext.takePhoto拍摄的照片:
2、讨论
从CameraContext.takePhoto拍摄的照片来看,CameraContext.takePhoto进行了大约1.5倍的放大。从开发文档看,Camera组件并没有提供相应的参数设置,请问是否有方法保证拍摄时不进行放大?谢谢!
遇到了同样的问题,camera组件会自动放大
最近发现camera组件增加了resolution参数,resolution="high"的时候相机的宽上的像素点可以用上:以前720*720的正方形现在扩大为1080*1080(以我的相机为例)
所以还没有解决?
确定不是因为焦距问题吗?我发现现在手机自带三摄的越来越多,小程序默认的后置不知道是哪一个摄像头,导致的焦距问题,而且只能放大不能缩小。
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
1)项目要求拍的照片不被放大,同时图片覆盖的视野能够尽量大;
2)为满足条件1,高设置为562.5rpx,则手机纵轴(高)上的像素点就被浪费(手机通常是高比宽要大,宽高比为3:4或9:16等)了。
不知我理解是否有问题,或者有其它解决方案,谢谢!
代码如下:
【WXML】
<camera device-position="back" flash="off" frame-size="large"
binderror="cameraError" class="camera-view"></camera>
【WXSS】
.camera-view {
width: 100%;
height: 562.5rpx;
z-index: -1;
}
1)环境:手机屏幕有效区域宽高比为9:16,高对应的rpx为750*16/9=1333rpx
2)实验的结果:使用camera组件时,当宽高比小于 4:3(比如4:4,高设为750rpx)时,camera组件为了保持4:3的宽高比(感觉如此),就会把来自于摄像头的图像自动进行放大。更期望的行为是,camera组件不对图像进行放大,高度是多少就截取摄像头上整个视野中相应高度的像素。当然,若开发者想放大图像,则又当别论,camera组件或许可以添加这一参数以提高灵活性