【问题标题】:How to set image resolution with QCamera in Qt 5.3?如何在 Qt 5.3 中使用 QCamera 设置图像分辨率?
【发布时间】:2016-04-18 21:30:04
【问题描述】:

我正在使用 Qt Qcamera 在 Windows Surface Pro 平板电脑上捕获图像。我写了一小段代码来检查 QCamera 的功能,但是在捕获图像后,保存的图像分辨率非常低,即 640*360,即使 Surface Pro 的后置摄像头支持 1280*720。即使是支持分辨率的 QList 也总是返回空。我到处找,但找不到可能的解决方案,有人可以帮忙吗?

这是我正在使用的代码:

#include "camera.h"
#include <QCamera>
#include <QCameraImageCapture>
#include <QCameraViewfinder>
#include <QDebug>
#include<QMultimedia>

Camera::Camera(QWidget *parent) :
    QWidget(parent)
{

    QByteArray cameraDevice;
    int count = QCamera::availableDevices().count();

    int cameraId = 1;


    QList<QByteArray> cameradev = QCamera::availableDevices();
    QByteArray camdevice = cameradev[cameraId];

    QCamera *camera = new QCamera(camdevice);

    QString description = camera->deviceDescription(camdevice);
    qDebug() <<"Device Name"<< description;

    QCameraViewfinder *viewfinder = new QCameraViewfinder();
    viewfinder->showMaximized();
    camera->setViewfinder(viewfinder);
    QCameraImageCapture *imageCapture = new QCameraImageCapture(camera);
    //camera->setCaptureMode(QCamera::CaptureStillImage);
    camera->start();
    QList<QSize> resolutions = imageCapture->supportedResolutions();//returns       always empty
    QImageEncoderSettings imageSettings;
    imageSettings.setCodec("image/jpeg");
    imageSettings.setResolution(1280, 720);
    imageCapture->setEncodingSettings(imageSettings);
    imageCapture->capture("D:/1.jpg");
    camera->searchAndLock();
    camera->unlock();
    qDebug() << camera->error();    
}

【问题讨论】:

    标签: c++ qt camera resolution qt5.3


    【解决方案1】:

    看来问题出在 Qt 版本上,这个问题在 Qt 5.5 及更高版本中得到修复,并且可以获得相机的所有支持分辨率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      相关资源
      最近更新 更多