Articles

WxWidgets i Magick++ v/s Qt : Moje doświadczenie z Photopalem

Photopal to nazwa prostej aplikacji, nad którą pracowałem. Użytkownicy mogą po prostu przeciągnąć i upuścić obraz, który jest konwertowany do rozdzielczości preferowanej przez użytkownika (domyślnie 72dpi). Upuść dużą ilość obrazów lub folderów, a aplikacja przekonwertuje je efektywnie.

Tę aplikację stworzyłem używając dwóch popularnych bibliotek – wxWidgets i Qt. Wyjaśnię najpierw obie, jeśli ktoś chce ich użyć, a potem je porównam.

Jak używać wxWidgets w Windows ?

Ściągnij źródło wxWidgets z https://www.wxwidgets.org/downloads/ . Rozpakuj pobrany plik.

Teraz pod folderem wxWidgets przejdź do /build/msw .
Znajdziesz tam różne nazwy projektów visual studio jako wx_vc follwed by visual studio version np. dla visual studio 13 jest to wx_vc12 .
Otwórz go w Visual Studio i skompiluj go używając konfiguracji, którą chcesz np. wydać w wersji x64 .

Odpowiednie pliki zostaną utworzone w folderze wxWidgets odpowiednio w folderze include i lib. Wymagane pliki dla wxWidgets są generowane.

Aby włączyć je do projektu, otwórz właściwości projektu.
Właściwości C/C++ – zakładka General , podaj ścieżkę do folderu (wxWidgets)/include i (wxWidgets)/include/msvc w Additional Include Directories.

Pod właściwości C/C++ – Preprocesor – Definicje preprocesora , dodaj WIN32 , WXUSINGDLL , _WXMSW , wxMSVC_VERSION_AUTO , _UNICODE i UNICODE.

Teraz pod Linker – General – Link Library Dependencies dodaj ścieżkę do folderu lib/vc, który zawiera twoje pliki dll np.np. vc120_x64_dll.
Pod Linker – Input – Additional Dependencies dodaj pliki lib, które potrzebujesz np. wxmsw31u_core.lib , wxmsw31u_gl.lib i wxbase31u.lib.
WxWidgets jest już skonfigurowane.

Jak używać Magick++ w Windows?

Ściągnij źródło Magick++ https://www.imagemagick.org/script/download.phpi rozpakuj je.

Aby stworzyć przestrzeń roboczą dla swoich wymagań, po prostu przejdź do folderu
VisualMagick i otwórz przestrzeń roboczą configure.dsw (dla
Visual Studio 6) lub configure.sln (dla Visual Studio 7 lub 8).
Ustaw konfigurację budowania na Release lub Debug. Zbuduj i wykonaj program configure i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.

Po pomyślnym zbudowaniu, wszystkie wymagane pliki, które są potrzebne do uruchomienia
każdego z narzędzi wiersza poleceń znajdują się w folderze VisualMagick\bin. Obejmuje to biblioteki EXE, DLL i pliki konfiguracyjne ImageMagick.
Aby uruchomić go w swoim projekcie, wystarczy zdefiniować w visual studio odwołanie do plików nagłówkowych (katalog include) i plików lib (katalog lib).
Dodaj również CORE_RL_Magick++_.lib i CORE_RL_MagickCore_.lib do dodatkowych zależności w Linker – Input .Również skopiuj pliki xml do lokalizacji wykonywalnej.

Teraz przychodzi trudna część , imagemagick działa tylko w systemach, w których jest już zainstalowany. Aby pokonać tę trudność, wystarczy pobrać plik exe programu imagemagick. Przejdź do folderu Program files/ imagemagick i skopiuj pliki dll do folderu coders. Teraz imagemagick jest gotowy do uruchomienia.

Jak używać WxWidgets w Ubuntu ?

Otwórz terminal i wpisz
deb http://apt.wxwidgets.org/ natty-wx main
deb-src http://apt.wxwidgets.org/ natty-wx main

Aby dodać podpis cyfrowy wpisz :
curl http://apt.wxwidgets.org/key.asc | sudo apt-key add –

Wykonaj następujące polecenia w terminalu:
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

Dodaj `wx-config – cxxflags` `wx-config -libs` i wymagane biblioteki wxWidgets do komendy g++ podczas kompilacji projektu WxWidgets.

Jak używać Magick++ w Ubuntu?

Otwórz terminal i zbuduj essentials dla Magick++ jako:
sudo apt-get install build-essential checkinstall && apt-get build-dep imagemagick -y

Teraz pobierz ImageMagick wpisując:
sudo wget http://www.imagemagick.org/download/ImageMagick.tar.gz

rozpakuj tar :
sudo tar xzvf ImageMagick.tar.gz

Uruchom następujące komendy w terminalu :
cd ImageMagick-7.0.4-5
./configure
make clean
make
checkinstall
ldconfig /usr/local/lib
ImageMagick jest gotowy do uruchomienia w twoim systemie.

Podejście 2 – Qt :

Jak używać Qt?

Pobierz Qt z oficjalnej strony używając instalatora online lub offline – https://www.qt.io/download-open-source/

Po instalacji , otwórz kreator Qt.Utwórz projekt Qt i uruchom go w trybie release lub debug.

Buduj dystrybucję w Qt :
Przejdź do C:\Qt\(wersja)\(kompilator)\bin . np. C:\Qt\5.9.1msvc2013_64\bin
Otwórz terminal w tym miejscu i uruchom :
windeployqt (lokalizacja twojego pliku binarnego) .
Twój dystrybuowalny plik wykonywalny wraz z wymaganym dll jest tworzony automatycznie.

Porównanie WxWidget i Magick++ vs Qt :

WxWidgets jest tylko biblioteką Gui i potrzebował Magick++ do przetwarzania obrazu, podczas gdy Qt sam w sobie był pełnoprawną biblioteką i zawierał różne narzędzia, jednym z nich było przetwarzanie obrazu. Można łatwo zauważyć, że używanie Qt jest mniej skomplikowane niż WxWidgets. Nawet kod dla Qt jest prosty do napisania i zrozumienia.

Ale z łatwością przychodzi wzrost w poziomie abstrakcji . Qt jest o wiele bardziej abstrakcyjny niż WxWidgets, co było dość zauważalne, gdy pracowałem nad pthread w wxWidgets i Qt’s own thread QThread. Więc to zależy od twojego obszaru zastosowań, czy chcesz pracować z Qt czy WxWidgets. W moim konkretnym przypadku, Qt było lepszym wyborem.

Jeśli napotkasz jakiekolwiek trudności w implementacji którejkolwiek z tych bibliotek, z przyjemnością pomogę.