Articles

WxWidgets e Magick++ v/s Qt : La mia esperienza con Photopal

Photopal è il nome di una semplice applicazione desktop su cui ho lavorato. Gli utenti possono semplicemente trascinare e rilasciare l’immagine e questa viene convertita alla risoluzione preferita dall’utente (di default 72dpi). Lasciate cadere un gran numero di immagini o cartelle e le convertirà in modo efficiente.

Ho creato questa applicazione usando due popolari librerie – wxWidgets e Qt. Li spiegherò entrambi prima se qualcuno vuole usarli e poi li confronterò entrambi.

Come usare WxWidgets in Windows?

Scaricate il sorgente wxWidgets da https://www.wxwidgets.org/downloads/. Scompattate il file che avete scaricato.

Ora sotto la cartella wxWidgets navigate in /build/msw .
Troverete vari nomi di progetti visual studio come wx_vc seguiti dalla versione di visual studio, ad esempio per visual studio 13 è wx_vc12 .
Aprirlo in Visual Studio e compilarlo utilizzando la configurazione desiderata, ad esempio per il rilascio in x64.

I file corrispondenti verranno creati nella cartella wxWidgets rispettivamente sotto la cartella include e lib. I file necessari per wxWidgets vengono generati.

Per includerlo nel tuo progetto, apri le proprietà del tuo progetto.
Nelle proprietà C/C++ – scheda Generale, dai il percorso alla tua cartella (wxWidgets)/include e (wxWidgets)/include/msvc in Additional Include Directories.

Sotto proprietà C/C++ – Preprocessore – Definizioni preprocessore , aggiungete WIN32 , WXUSINGDLL , _WXMSW , wxMSVC_VERSION_AUTO , _UNICODE e UNICODE.

Ora sotto Linker – General – Link Library Dependencies aggiungete il percorso alla vostra cartella lib/vc che contiene i vostri file dll e.Ad es. vc120_x64_dll.
Sotto Linker – Input – Additional Dependencies aggiungete i file lib di cui avete bisogno, ad es. wxmsw31u_core.lib , wxmsw31u_gl.lib e wxbase31u.lib.
WxWidgets è tutto pronto.

Come usare Magick++ in Windows?

Scaricate il sorgente Magick++ https://www.imagemagick.org/script/download.phpe scompattatelo.

Per creare uno spazio di lavoro per le tue esigenze, vai semplicemente alla cartella
VisualMagick\configure e apri lo spazio di lavoro configure.dsw (per
Visual Studio 6) o configure.sln (per Visual Studio 7 o 8).
Imposta la configurazione di costruzione su Release o Debug. Costruisci ed esegui il programma configure e segui le istruzioni sullo schermo.

Dopo una compilazione di successo, tutti i file richiesti che sono necessari per eseguire
ogni strumento a riga di comando si trovano nella cartella VisualMagick\bin. Questo include EXE, librerie DLL e file di configurazione di ImageMagick.
Per eseguirlo nel tuo progetto basta definire il riferimento ai file header (include directory) e lib (lib directory) nel visual studio.
Aggiungi anche CORE_RL_Magick++_.lib e CORE_RL_MagickCore_.lib alle dipendenze aggiuntive sotto Linker – Input.Copia anche i file xml nel percorso eseguibile.

Ora arriva la parte difficile, imagemagick funziona solo su sistemi dove è già installato. Per superare questa difficoltà, basta scaricare il file exe di imagemagick. Vai su Program files/ imagemagick e copia i file dll sotto la cartella coders. Ora imagemagick è pronto per essere eseguito.

Come usare WxWidgets in Ubuntu?

Apri il terminale e digita
deb http://apt.wxwidgets.org/ natty-wx main
deb-src http://apt.wxwidgets.org/ natty-wx main

Per aggiungere la firma digitale digita :
curl http://apt.wxwidgets.org/key.asc | sudo apt-key add –

Esegui i seguenti comandi nel terminale:
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

Aggiungi `wx-config – cxxflags` `wx-config -libs` e le librerie wxWidgets richieste al comando g++ durante la compilazione del progetto WxWidgets.

Come usare Magick++ in Ubuntu?

Aprire il terminale e costruire gli elementi essenziali per Magick++ come:
sudo apt-get install build-essential checkinstall && apt-get build-dep imagemagick -y

Ora scarica ImageMagick digitando:
sudo wget http://www.imagemagick.org/download/ImageMagick.tar.gz

Scompatta il tar :
sudo tar xzvf ImageMagick.tar.gz

Esegui i seguenti comandi nel terminale :
cd ImageMagick-7.0.4-5
./configure
make clean
make
checkinstall
ldconfig /usr/local/lib
ImageMagick è pronto per funzionare sul tuo sistema.

Approccio 2 – Qt :

Come usare Qt?

Scarica Qt dal sito ufficiale usando il programma di installazione online o offline – https://www.qt.io/download-open-source/

Dopo l’installazione, apri il Qt creator.Crea un progetto Qt ed eseguilo in modalità di rilascio o debug.

Costruisci un distribuibile in Qt :
Vai alla cartella C:\Qt\(versione)\(compilatore)\bin . ad esempio C:\Qt\5.9.1\msvc2013_64\bin
Apri il terminale qui ed esegui :
windeployqt (posizione del tuo file binario) .
Il tuo eseguibile distribuibile insieme alla dll richiesta viene fatto automaticamente.

Confronto tra WxWidget e Magick++ vs Qt :

WxWidgets è solo una libreria Gui e aveva bisogno di Magick++ per l’elaborazione delle immagini, mentre Qt è una libreria completa e contiene varie utility, una delle quali è l’elaborazione delle immagini. Si può facilmente notare che usare Qt è meno complesso di WxWidgets. Anche il codice per Qt è semplice da scrivere e capire.

Ma con la facilità arriva l’aumento del livello di astrazione. Qt è molto più astratto di WxWidgets, il che è stato abbastanza evidente quando ho lavorato su pthread in wxWidgets e sul proprio thread QThread di Qt. Quindi dipende dalla vostra area di applicazione se volete lavorare con Qt o WxWidgets. Nel mio caso particolare però, Qt è stata una scelta migliore.

Se avete qualche difficoltà nell’implementare una di queste librerie, sarò felice di aiutarvi.