2016-04-18 4 views
0

Je travaille sur Qt Qcamera pour capturer des images sur une tablette Windows Surface Pro. J'ai écrit ce petit morceau de code pour vérifier la fonctionnalité de QCamera, mais après avoir capturé l'image, l'image enregistrée a la résolution très basse c'est-à-dire 640 * 360, quoique la caméra arrière de surface pro prenne en charge 1280 * 720. Même le QList pour la résolution prise en charge retourne toujours vide. J'ai regardé partout mais je n'ai pas trouvé de solution possible, quelqu'un peut-il m'aider?Comment régler la résolution d'image avec QCamera dans Qt 5.3?

Voici le code que je utilise:

#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();  
} 

Répondre

1

Eh bien, il semblait que le problème a été avec la version Qt, ce problème est résolu dans la version Qt 5.5 et au-dessus et il est possible d'obtenir toutes les résolutions prises en charge d'une caméra . Merci quand même!