如何在Qt 5.3中使用QCamera设置图像分辨率?
问题描述:
我正在使用Qt Qcamera
来捕获Windows Surface Pro平板电脑上的图像。我已经写了一小段代码来检查QCamera的功能,但是在捕获图像后,保存的图像具有非常低的分辨率,即640 * 360,尽管Surface Pro的后置摄像头支持1280 * 720。即使支持分辨率的QList总是返回空白。我到处寻找,但找不到可能的解决方案,任何人都可以请帮忙吗?如何在Qt 5.3中使用QCamera设置图像分辨率?
这里是我使用的代码:
#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();
}
答
那么它似乎是问题是使用Qt版本,这个问题在Qt的固定5.5及以上版本,并有可能得到一个相机的所有受支持的分辨率。 虽然谢谢!