Articles

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

Photopal は、私が取り組んだシンプルなデスクトップ アプリケーションの名前です。 ユーザーは画像をドラッグ&ドロップするだけで、ユーザーが希望する解像度に変換されます(デフォルトは 72dpi)。 多数のイメージまたはフォルダーをドロップすると、それらを効率的に変換します。

このアプリケーションは、wxWidgets と Qt という 2 つの一般的なライブラリを使って作成しました。

WindowsでWxWidgetsを使うには?

WxWidgetsのソースはhttps://www.wxwidgets.org/downloads/からダウンロードします。 ダウンロードしたファイルを解凍します。

次に、wxWidgetsフォルダの下にある/build/msw .
Visual Studioプロジェクト名をwx_vcとし、その後にVisual Studioバージョン(例:Visual Studio 13ではwx_vc12となります)が表示されることを確認します。
Visual Studioでこれを開き、x64でリリースする場合など、必要な設定を使用してコンパイルします。

wxWidgets フォルダ内の include と lib フォルダにそれぞれ対応するファイルが作成されます。
C/C++ プロパティ – 全般 タブで、追加インクルード ディレクトリに (wxWidgets)/include および (wxWidgets)/include/msvc フォルダーのパスを入力します。

C/C++ のプロパティ – プリプロセッサ – プリプロセッサ定義で、WIN32、WXUSINGDLL、_WXMSW、wxMSVC_VERSION_AUTO、_UNICODE および UNICODE を追加します。

次にリンカー – 一般 – リンク ライブラリ依存関係で、dll ファイルがある lib/vc フォルダー (例. WxWidgets/include)をパスして、追加インクルードを追加します。例えば vc120_x64_dll.
Linker – Input – Additional Dependencies に必要な lib ファイルを追加します。例えば wxmsw31u_core.lib, wxmsw31u_gl.lib, wxbase31u.lib.
WxWidgets はこれですべて設定できました。

Windows で Magick++ を使用するには?

Magick++ ソース https://www.imagemagick.org/script/download.php をダウンロードして、それを解凍してください。

要件に応じたワークスペースを作成するには、
VisualMagick フォルダに移動して configure.dsw ワークスペース (
Visual Studio 6 用) または configure.sln (Visual Studio 7 または 8 用) を開くだけです。
構築構成を Release または Debug に設定します。 ビルドして configure プログラムを実行し、画面上の指示に従います。

ビルドが成功すると、コマンド ライン ツールのいずれかを実行するために必要なすべてのファイルが VisualMagickbin フォルダーに配置されます。 これには、EXE、DLL ライブラリ、および ImageMagick 設定ファイルが含まれます。
プロジェクトでこれを実行するには、単に Visual Studio でヘッダーファイル (include ディレクトリ) および lib ファイル (lib ディレクトリ ) への参照を定義するだけです。また、xml ファイルを実行ファイルにコピーします。

ここからが厄介なのですが、imagemagick はすでにインストールされているシステムでのみ動作します。 この問題を解決するには、imagemagick の exe ファイルをダウンロードします。 Program files/ imagemagickに移動し、codersフォルダの下にあるDLLファイルをコピーします。

UbuntuでWxWidgetsを使用するには?

ターミナルを開き、
deb http://apt.wxwidgets.org/ natty-wx main
deb-src http://apt.wxwidgets.org/ natty-wx main

電子署名を追加するには :
curl http://apt.wxwidgets.org/key.asc | sudo apt-key add –

ターミナルで下記のコマンドを実行してください。
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

WxWidgets プロジェクトのコンパイル中に `wx-config – cxxflags` `wx-config -libs` と必要な wxWidgets ライブラリを g++ コマンドに追加します。

Ubuntu で Magick++ を使用するにはどうしたらいいですか?

ターミナルを開き、
sudo apt-get install build-essential checkinstall && apt-get build-dep imagemagick -y

次に、
sudo wget http://www.imagemagick.org/download/ImageMagick.tar.gz

解凍してください :
sudo tar xzvf ImageMagick.Imagemagick for the magic++ for the Magick++をダウンロードし、解凍してください。tar.gz

ターミナルで以下のコマンドを実行 :
cd ImageMagick-7.0.4-5
./configure
make clean
make
checkinstall
ldconfig /usr/local/lib
ImageMagick はシステムで実行できる状態になっているはずです。

アプローチ2 – Qt :

Qtの使用方法?

公式サイトからオンラインまたはオフラインのインストーラーを使ってQtをダウンロードする – https://www.qt.io/download-open-source/

インストール後、Qt creatorを開く。

Build a distributable in Qt :
Go to the C:\Qt(version)\(compiler)\bin … 例) C:\Qt5.9.1msvc2013_64bin
Open the terminal here and run :
windeployqt (location of your binary file) .
Your distributable executable with the required dll is automatically made.

WxWidget と Magick++ の比較 vs Qt :

WxWidgets は単なる GUI ライブラリで画像処理に Magick++ を必要としたのに対し、Qt 自体は本格的なライブラリで画像処理などのさまざまなユーティリティを含んでいたのですが、そのうちの 1 つが画像処理でした。 Qtは、WxWidgetsに比べれば、それほど複雑なものではありません。 Qt のコードでさえ、書くのも理解するのも簡単です。

しかし、簡単であればあるほど、抽象度は高くなります。 Qt は WxWidgets よりもはるかに抽象的で、WxWidgets の pthread と Qt 独自のスレッド QThread に取り組んだときに、それは顕著に現れました。 ですから、QtとWxWidgetsのどちらで作業したいかは、あなたのアプリケーションの分野に依存します。 しかし、私の特定のケースでは、Qt はより良い選択でした。

これらのライブラリの実装で何か困難に直面したら、私は喜んでお手伝いします。