我正在开发Qt Qcamera来捕捉图像,在Windows平板电脑上。我编写了这个小代码来检查QCamera的功能,但是在捕获图像之后,保存的图像具有很低的分辨率,即640*360,尽管表面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();
}发布于 2016-05-25 14:06:53
这个问题似乎是Qt版本的问题,这个问题在QT5.5版本和更高版本中得到了解决,并且有可能获得相机的所有支持分辨率。
https://stackoverflow.com/questions/36704647
复制相似问题