Articles

WxWidgets e Magick++ v/s Qt : My Experience with Photopal

Photopal é o nome de uma simples aplicação desktop em que trabalhei. Os usuários podem simplesmente arrastar e soltar a imagem e ela é convertida para a resolução preferida pelo usuário (padrão 72dpi). Solte um grande número de imagens ou pastas e ele as converterá eficientemente.

Criei esta aplicação usando duas bibliotecas populares – wxWidgets e Qt. Explicarei as duas primeiro se alguém quiser usá-las e depois vou compará-las.

Como usar WxWidgets no Windows ?

Download da fonte wxWidgets de https://www.wxwidgets.org/downloads/ . Descompacte o ficheiro que descarregou.

Na pasta wxWidgets navegue até /build/msw .
Encontrará vários nomes de projectos visuais de estúdio como wx_vc dobrados por versão visual studio e.g. para visual studio 13 é wx_vc12 .
Abra-o no Visual Studio e compile-o usando a configuração que você quer, por exemplo, para lançamento em x64 .

Os arquivos correspondentes serão criados na pasta wxWidgets em include e lib, respectivamente. Os ficheiros necessários para wxWidgets são gerados.

Para incluí-lo no seu projecto , abra as propriedades do seu projecto.
Abaixo das propriedades C/C++ – separador General , dê caminho à sua pasta (wxWidgets)/include e (wxWidgets)/include/msvc em Additional Include Directories.

>

Patras C/C++ propriedades – Pré-processador – Definições do Pré-processador , adicione WIN32 , WXUSINGDLL , _WXMSW , wxMSVC_VERSION_AUTO , _UNICODE e UNICODE.

Agora em Linker – Geral – Link Library Dependencies adicione caminho para sua pasta lib/vc que contém seus arquivos dll e.g. vc120_x64_dll.
A seguir Linker – Input – Dependências Adicionais adicione arquivos lib que você precisa, por exemplo, wxmsw31u_core.lib , wxmsw31u_gl.lib e wxbase31u.lib.
WxWidgets está tudo configurado agora.

Como usar o Magick+++ no Windows?

Baixar a fonte do Magick++ https://www.imagemagick.org/script/download.php e descompactá-la.

Para criar um espaço de trabalho para os seus requisitos, basta ir para a pasta configure.dsw (para
VisualMagick\) ou configure.sln (para Visual Studio 7 ou 8).
Configure a configuração de compilação para Release ou Debug. Construa e execute o programa de configuração e siga as instruções na tela.

Após uma compilação bem sucedida, todos os arquivos necessários que são necessários para executar
qualquer uma das ferramentas de linha de comando estão localizados na pasta VisualMagick\bin. Isso inclui EXE, bibliotecas DLL e arquivos de configuração do ImageMagick.
Para executá-lo em seu projeto basta definir a referência para os arquivos de cabeçalho (incluir diretório) e arquivos lib (diretório lib ) no visual studio.
Adicionar também CORE_RL_Magick++_.lib e CORE_RL_MagickCore_.lib para dependências adicionais em Linker – Input .Também copie os arquivos xml para a localização do executável.

Agora vem a parte complicada , o imagemagick roda apenas em sistemas onde já está instalado. Para superar essa dificuldade , basta baixar o arquivo exe do imagemagick. Vá em Program files/ imagemagick e copie os arquivos dll sob a pasta codificadores. Agora o imageagick está pronto para ser executado.

Como usar WxWidgets no Ubuntu ?

Abrir o terminal e digite
deb http://apt.wxwidgets.org/ natty-wx main
deb-src http://apt.wxwidgets.org/ natty-wx main

Adicionar assinatura digital tipo :
curl http://apt.wxwidgets.org/key.asc | sudo apt-key add –

Executar os seguintes comandos no 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

Adicionar `wx-config – cxxflags` `wx-config -libs` e bibliotecas wxWidgets necessárias ao comando g++ enquanto compila o projeto WxWidgets.

Como utilizar o Magick++ no Ubuntu?

Abra o terminal e constrói o essencial para o Magick++ as:
sudo apt-get install build-essential checkinstall && apt-get build-dep imagemagick -y

Agora Baixe o ImageMagick digitando:
sudo wget http://www.imagemagick.org/download/ImageMagick.tar.gz

Unzip the tar :
sudo tar xzvf ImageMagick.tar.gz

>

Executar os seguintes comandos no terminal :
cd ImageMagick-7.0.4-5
./configure
make clean
make
checkinstall
ldconfig /usr/local/lib
ImageMagick está pronto para rodar no seu sistema.

>

Aproximação 2 – Qt :

Como usar o Qt?

>

Baixar o Qt do site oficial usando o instalador online ou offline – https://www.qt.io/download-open-source/

>

Depois da instalação, abra o criador do Qt.Crie um Projeto Qt e execute-o no modo de lançamento ou depuração.

Build a distribuível em Qt :
Vá para o C:\Qt\(versão)\(compilador)\bin . e.g. C:\Qt\5.9.1\msvc2013_64\bin
Abra o terminal aqui e corre :
windeployqt (localização do teu ficheiro binário) .
O teu executável distribuível juntamente com a dll necessária é automaticamente feito.

Comparação de WxWidget e Magick++ vs Qt :

WxWidgets é apenas uma biblioteca Gui e precisava de Magick++ para processamento de imagens enquanto Qt em si mesmo era uma biblioteca completa e contém vários utilitários , um dos quais era o processamento de imagens. Pode-se facilmente notar que utilizar o Qt é menos complexo do que WxWidgets . Mesmo o código para Qt é simples de escrever e entender.

Mas com facilidade vem aumentando o nível de abstração . Qt é muito mais abstrato que WxWidgets, o que era bastante perceptível quando eu trabalhava em pthread em wxWidgets e na própria thread do Qt QThread. Portanto, depende da sua área de aplicação se você quer trabalhar com Qt ou WxWidgets. No meu caso, Qt foi uma escolha melhor.

Se você enfrentar alguma dificuldade em implementar alguma dessas bibliotecas, eu ficarei feliz em ajudar.