C++」カテゴリーアーカイブ

プログラミング言語「C++」に関するカテゴリーです。

Magick++ライブラリ

Magick++はC++言語で使える画像処理ライブラリです。ImageMagickでできるような画像処理を自分のプログラムに組み込むことができます。

ヘッダーファイルの読み込み

#include <Magick++.h>

ライブラリの初期化

Magick::Image image(*argv);

画像処理

ファイルを読み込む

Magick::Image image("example.jpg");

2値化

image.type(Magick::BilevelType);

処理後の画像を保存

image.write("magick++.jpg");

画像を2値化するサンプルコード

#include <Magick++.h> 
#include <iostream> 

int main(int ac, char **av)
{
  Magick::InitializeMagick(*av);

  try{
    Magick::Image image(av[1]);
    image.type(Magick::BilevelType);
    image.write("magick++.jpg");
  }
  catch(Magick::Exception &error_){
    std::cout << "exception: " << error_.what() << std::endl;
  } 

  return 0; 
}

コンパイルとリンク

ヘルパースクリプトMagick++-configを使うとヘッダーのパスやリンクオプションを自動で指定できます。

c++ magick++.cc `Magick++-config --cppflags --cxxflags --ldflags --libs`

2値化した画像の例

WindowsのMessageBox関数

WindowsのMessageBox関数の使い方について(C言語)

メッセージを表示するだけ

MessageBox(NULL, "text", "title", MB_OK);

OK/Cancelのメッセージボックス

int ret = MessageBox(NULL, "text", "title", MB_OK);
if(ret == IDOK){
}
else if(ret == IDCANCEL){
}

YES/NOのメッセージボックス

int ret = MessageBox(NULL, "text", "title", MB_YESNO);
if(ret == IDYES){
}
else if(ret == IDNO){
}

リンク

MessageBox 関数
http://msdn.microsoft.com/ja-jp/library/cc410914.aspx

CreateProcessの使い方

CreateProcessを使うと別のアプリケーションを実行することができます。

CreateProcess 関数
http://msdn.microsoft.com/ja-jp/library/cc429066.aspx

コマンドラインアプリケーションの場合にコマンドプロンプトを非表示にするには、SW_HIDEを使うようです。

CreateProcessからプロンプトを非表示 – takoashiの開発記録
http://d.hatena.ne.jp/takoashi_net/20090305/1236239906