【问题标题】:Flutter: How to capture full frame image from camera?Flutter:如何从相机捕获全帧图像?
【发布时间】:2021-07-16 18:10:26
【问题描述】:

我需要在我的 Flutter 应用中从相机中捕获全帧图像(宽高比为 4x3)。 然而,我得到的唯一图像是 16x9(有点裁剪)。 此外,我在文档和示例中找不到任何提及。 那么,如何在我的 Flutter 应用程序中从摄像头获取宽幅、全帧 4x3 图像? 在我的主项目中,我使用的是 camera 插件版本 0.8.1。

复制步骤

可以使用颤振相机示例重现步骤。

  1. 下载相机库示例 (https://github.com/flutter/plugins/tree/master/packages/camera/camera/example)。
  2. 为 CameraController 设置 ResolutionPreset.max(而不是 ResolutionPreset.medium)。
  3. 从后置摄像头拍照。
  4. 检查其宽度和高度。

预期结果:

全画幅图片,尺寸为 3024x4032,即3x4。

实际结果:

图片尺寸为2160 × 3840,即9x16。

相同的行为可以在所有设备上重现,包括 iOS 和 Android。 我在 Pixel 3a 和 iPhone XS 上检查过。

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.2, on macOS 11.1 20C69 darwin-x64, locale en-GB)
    • Flutter version 2.0.2 at /Users/yurii.dvornyk/Documents/flutter
    • Framework revision 8962f6dc68 (6 weeks ago), 2021-03-11 13:22:20 -0800
    • Engine revision 5d8bf811b3
    • Dart version 2.12.1

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/yurii.dvornyk/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/yurii.dvornyk/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      ???? https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      ???? https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.55.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 90.0.4430.85

【问题讨论】:

    标签: image flutter camera size


    【解决方案1】:

    如果您在第 280 行看到 iOS 的相机插件来源:CameraPlugin.m,您可以看到分辨率是手动编写的,对于 Android:CameraUtils.java 在第 80 行相同。

    有关分辨率的 iOs 文档:https://developer.apple.com/documentation/avfoundation/avcapturesession/preset

    有关分辨率的 Android 文档:https://developer.android.com/reference/android/media/CamcorderProfile

    iPhone 5S iPod Touch iPhone6/6S/SE/7/8/X
    1920x1080 (HD) Y Y
    2560x1440 (UHD) N Y
    3840x2160 (4K) N Y
    3840x1440 N Y
    4096x2048 N N
    3200x4800 N N
    2280x5760 N N

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 2015-03-19
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多