收藏
回答

为什么CameraContext.takePhoto拍摄的照片放大了实物?

大家好!测试发现Android手机上CameraContext.takePhoto拍摄的照片放大了实物。

1、在相同举例上拍摄同一个杯子为例,测试如下:

1)手机自带拍照应用放大1倍的照片:


2)手机自带拍照应用放大2倍的照片:


3)CameraContext.takePhoto拍摄的照片:


2、讨论

CameraContext.takePhoto拍摄的照片来看,CameraContext.takePhoto进行了大约1.5倍的放大。从开发文档看,Camera组件并没有提供相应的参数设置,请问是否有方法保证拍摄时不进行放大?谢谢!

回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    2019-10-24

    麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-10-24
    赞同
    回复 4
    • 零时零刻
      零时零刻
      2019-10-25
      你好,我研究了一下,发现是因为视野的高设置得大了(设置成了1000rpx)则图像就会被放大。发现宽高比为4:3的时候,也就是高设置为750rpx*3/4=562.5rpx的时候则不会放大(宽width设为100%)。那么问题来了:
      1)项目要求拍的照片不被放大,同时图片覆盖的视野能够尽量大;
      2)为满足条件1,高设置为562.5rpx,则手机纵轴(高)上的像素点就被浪费(手机通常是高比宽要大,宽高比为3:4或9:16等)了。
      不知我理解是否有问题,或者有其它解决方案,谢谢!
      2019-10-25
      回复
    • 零时零刻
      零时零刻
      2019-10-25
      2019-10-25
      回复
    • 零时零刻
      零时零刻
      2019-10-28
      你好,有信息更新么?我之前做的实验细节如下:
      1)环境:手机屏幕有效区域宽高比为9:16,高对应的rpx为750*16/9=1333rpx

      2)实验的结果:使用camera组件时,当宽高比小于 4:3(比如4:4,高设为750rpx)时,camera组件为了保持4:3的宽高比(感觉如此),就会把来自于摄像头的图像自动进行放大。更期望的行为是,camera组件不对图像进行放大,高度是多少就截取摄像头上整个视野中相应高度的像素。当然,若开发者想放大图像,则又当别论,camera组件或许可以添加这一参数以提高灵活性
      2019-10-28
      回复
    • Silvan
      Silvan
      2019-11-15
      我发现默认的取景框 和 系统自带的二倍光学变焦基本一致。。。
      2019-11-15
      回复
  • 曾杰霖 🎉
    曾杰霖 🎉
    2019-11-20

    所以还没有解决?

    2019-11-20
    赞同
    回复 1
    • 零时零刻
      零时零刻
      2019-11-20
      没有解决,说是研究中...
      2019-11-20
      回复
  • Silvan
    Silvan
    2019-10-31

    确定不是因为焦距问题吗?我发现现在手机自带三摄的越来越多,小程序默认的后置不知道是哪一个摄像头,导致的焦距问题,而且只能放大不能缩小。

    2019-10-31
    赞同
    回复 3
    • 零时零刻
      零时零刻
      2019-10-31
      应该不是焦距问题,拍摄距离和角度,被拍摄物体都不变,只要height的值不是562.5rpx图像就会被放大。换个手机也如此。详细测试见:https://developers.weixin.qq.com/community/develop/doc/000686fc4386a8cc28693953656400?fromCreate=1。重点在于组件自动执行的放大这个动作不为开发者所控制。
      2019-10-31
      回复
    • Silvan
      Silvan
      2019-11-15回复零时零刻
      我发现默认的取景框 和 系统自带的二倍光学变焦基本一致。。。
      2019-11-15
      回复
    • 零时零刻
      零时零刻
      2019-11-15
      “默认的取景框”的意思是camera组件中不设置“width”和“height”?两者不设置的话相机视野是不出来的吧
      2019-11-15
      回复
登录 后发表内容
问题标签