簡體   English   中英

如何在Qt 5.3中使用QCamera設置圖像分辨率?

[英]How to set image resolution with QCamera in Qt 5.3?

我正在使用Qt Qcamera在Windows Surface Pro平板電腦上捕獲圖像。 我已經編寫了這小段代碼來檢查QCamera的功能,但是捕獲圖像后,即使Surface Pro的后置攝像頭支持1280 * 720,保存的圖像分辨率也很低,即640 * 360。 即使是支持解析的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();    
}

好吧,看來問題出在Qt版本上,此問題已在Qt 5.5版本及更高版本中得到解決,並且有可能獲得相機所有受支持的分辨率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM