Articles

WxWidgets și Magick++ v/s Qt : Experiența mea cu Photopal

Photopal este numele unei aplicații desktop simple la care am lucrat. Utilizatorii pot pur și simplu să tragă și să fixeze imaginea, iar aceasta este convertită la rezoluția preferată de utilizator (implicit 72dpi). Aruncați un număr mare de imagini sau foldere și le va converti eficient.

Am creat această aplicație folosind două biblioteci populare – wxWidgets și Qt. Le voi explica pe amândouă mai întâi dacă cineva dorește să le folosească și apoi le voi compara pe amândouă.

Cum se utilizează WxWidgets în Windows ?

Descărcați sursa wxWidgets de la https://www.wxwidgets.org/downloads/ . Dezarhivați fișierul descărcat.

Acum, sub folderul wxWidgets, navigați la /build/msw .
Vă veți găsi diverse nume de proiecte visual studio ca wx_vc urmate de versiunea visual studio, de exemplu pentru visual studio 13 este wx_vc12 .Deschideți-l în Visual Studio și compilați-l folosind configurația pe care o doriți pentru, de exemplu, lansarea în x64 .

Arhivele corespunzătoare vor fi create în dosarul wxWidgets în dosarul include și, respectiv, lib. Fișierele necesare pentru wxWidgets sunt generate.

Pentru a-l include în proiectul dumneavoastră , deschideți proprietățile proiectului dumneavoastră.
În proprietățile C/C++ – fila General , dați calea către dosarul (wxWidgets)/include și (wxWidgets)/include/msvc în Additional Include Directories.

La secțiunea C/C++ properties – Preprocessor – Preprocessor Definitions , adăugați WIN32 , WXUSINGDLL , _WXMSW , wxMSVC_VERSION_AUTO , _UNICODE și UNICODE.

Acum, la Linker – General – Link Library Dependencies, adăugați calea către folderul lib/vc care conține fișierele DLL e.g. vc120_x64_dll.
Sub Linker – Input – Additional Dependencies adăugați fișierele lib de care aveți nevoie de ex. wxmsw31u_core.lib , wxmsw31u_gl.lib și wxbase31u.lib.
WxWidgets este configurat acum.

Cum se utilizează Magick++ în Windows?

Descărcați sursa Magick++ https://www.imagemagick.org/script/download.php și descompactați-o.

Pentru a crea un spațiu de lucru pentru cerințele dumneavoastră, mergeți pur și simplu la dosarul
VisualMagick\configure și deschideți spațiul de lucru configure.dsw (pentru
Visual Studio 6) sau configure.sln (pentru Visual Studio 7 sau 8).
Setați configurația de construire la Release sau Debug. Construiți și executați programul configure și urmați instrucțiunile de pe ecran.

După o construcție reușită, toate fișierele necesare pentru a rula
orice instrument de linie de comandă sunt localizate în folderul VisualMagick\bin. Aceasta include bibliotecile EXE, DLL și fișierele de configurare ImageMagick.
Pentru a o rula în proiectul dvs. este suficient să definiți referința la fișierele de antet (directorul include) și la fișierele lib (directorul lib ) în Visual Studio.
De asemenea, adăugați CORE_RL_Magick++_.lib și CORE_RL_MagickCore_.lib la dependențele suplimentare sub Linker – Input .De asemenea, copiați fișierele xml în locația executabilă.

Acum vine partea complicată , imagemagick rulează numai pe sistemele unde este deja instalat. Pentru a depăși această dificultate , pur și simplu descărcați fișierul exe al imagemagick. Mergeți la Program files/ imagemagick și copiați fișierele dll în folderul coders. Acum imagemagick este gata de a fi rulat.

Cum se utilizează WxWidgets în Ubuntu ?

Deschideți terminalul și tastați
deb http://apt.wxwidgets.org/ natty-wx main
deb-src http://apt.wxwidgets.org/ natty-wx main

Pentru a adăuga semnătura digitală tastați :
curl http://apt.wxwidgets.org/key.asc | sudo apt-key add –

Rulați următoarele comenzi în terminal:
sudo apt-get update
sudo apt-get install wx2.8-headers libwxgtk2.8-0 libwxgtk2.8-dev
cd /usr/include
ls | grep wx
sudo ln -sv wx-2.8/wx wx wx

Adaugați `wx-config – cxxflags` `wx-config -libs` și bibliotecile wxWidgets necesare la comanda g++ în timpul compilării proiectului WxWidgets.

Cum se utilizează Magick++ în Ubuntu?

Deschideți terminalul și construiți elementele esențiale pentru Magick++ ca:
sudo apt-get install build-essential checkinstall && apt-get build-dep imagemagick -y

Acum descărcați ImageMagick tastând:
sudo wget http://www.imagemagick.org/download/ImageMagick.tar.gz

Dezarhivați fișierul tar :
sudo tar xzvf ImageMagick.tar.gz

Executați următoarele comenzi în terminal :
cd ImageMagick-7.0.4-5
./configure
make clean
make
checkinstall
ldconfig /usr/local/lib
ImageMagick este gata să ruleze pe sistemul dumneavoastră.

Apropiere 2 – Qt :

Cum se utilizează Qt?

Descărcați Qt de pe site-ul oficial folosind programul de instalare online sau offline – https://www.qt.io/download-open-source/

După instalare , deschideți Qt creator.Creați un proiect Qt și rulați-l în modul de lansare sau de depanare.

Constituiți un distribuabil în Qt :
Direcționați-vă la C:\Qt\(versiune)\(compilator)\bin . de exemplu, C:\Qt\5.9.1\msvc2013_64\bin
Deschideți terminalul aici și rulați :
windeployqt (locația fișierului dvs. binar) .
Executabilul dvs. distribuibil împreună cu dll-ul necesar este realizat automat.

Compararea dintre WxWidget și Magick++ vs Qt :

WxWidgets este doar o bibliotecă de Gui și avea nevoie de Magick++ pentru procesarea imaginilor, în timp ce Qt în sine era o bibliotecă cu drepturi depline și conținea diverse utilități, dintre care una era procesarea imaginilor. Se poate observa cu ușurință că utilizarea Qt este mai puțin complexă decât WxWidgets . Chiar și codul pentru Qt este simplu de scris și de înțeles.

Dar odată cu ușurința vine și creșterea nivelului de abstractizare . Qt este mult mai abstract decât WxWidgets, ceea ce a fost destul de vizibil atunci când am lucrat la pthread în wxWidgets și la propriul thread QThread al Qt. Așadar, depinde de domeniul dumneavoastră de aplicare dacă doriți să lucrați cu Qt sau cu WxWidgets. În cazul meu particular însă, Qt a fost o alegere mai bună.

Dacă întâmpinați dificultăți în implementarea oricăreia dintre aceste biblioteci , voi fi bucuros să vă ajut.

.