A forrás letöltése után nyissuk meg a qimagegrabber.pro fájlt a Qtcreatorral majd nyomjunk egy buildet, vagy menünk a
forrás mappájába és adjuk ki a parancsokat:
qmake
make
Ezután a forrás bin mappájában /* a QtCreator előszeretettel használ
shadow build mapppát, ekkor a forrás mappa mellett lesz egy
qimagegrabber-build-desktop mappa */ létrejön a qimagegrabber.dll
(Windowson) vagy a libqimagegrabber.so file (Unix like rendszereken).
Ezzel elkészült a könyvtárunk vegyük használatba.
A programunk .pro fájljához adjuk hozzá a könyvtárat hogy tudjon róla a linker:
LIBS += -L../../libs/bin -lqimagegrabber
INCLUDEPATH += ../../libs/qimagegrabber
A../../libs elérési út helyett adjuk meg azt az utat ahol a lefordított könyvtár található.
A ../../libs/qimagegrabber helyett pedig a forrás mappáját helyettesítsük be.
A használni kívánt osztályunk headerébe includoljuk be a következő fejléceket:
#include <qimagegrabberhttp.h>
#include <qimagegrabbermjpeg.h>
#include <dialogqimagegrabbersettings.h>
Deklaráljunk három mutatót:
QImageGrabberHttp *httpGrabber;
DialogQImageGrabberSettings settingsDialog;
QImageGrabberMjpeg *mjpgGrabber;
Majd a konstruktorban példányosítsunk az imagegrabber objektumokat:
mjpgGrabber = new QImageGrabberMjpeg(this);
httpGrabber = new QImageGrabberHttp(this);
A képleltöltő osztálykhoz csináltam egy általános beállítóablakot, ezt a következőképpen lehet előhívni:
settingsDialog.setImageGrabber(httpGrabber);
settingsDialog.show();
Itt lehetőség van az elérési út grafikus módosítására, illetve a stream megállítására vagy indítására.
Az inicializáció után kössük be a képleltöltő legfontosabb szignálját:
connect(httpGrabber, SIGNAL(newImageGrabbed(QImage*)),this, SLOT(newImageReceieved(QImage*)));
Majd a slotunkban kezdjünk vele amit szeretnénk.
Felszabadítani nem szabad az átadott pointert!
void MainWindow::newImageReceieved(QImage *img)
{
ui->labelImage->setPixmap(QPixmap::fromImage(*img));
}
Kész működő példakód itt.