ここから本文です
私的な鉄道模型の記録
シキ1000完成です〜

書庫全体表示

以前にアップしたやつの修正版です。

自分で使ってて何気に使いにくい部分もあり、ちこっと変更です。

こちらにzipでありますのでダウンロードしてください。

念のためのURL  http://yahoo.jp/box/9v7KcD

使用される方は、ノーサポート完全自己責任でご利用ください。

改善要望やバグ報告はウェルカムですが、いつ修正されるかは全くわかりません。

フリーで商用利用も何をしても文句言いませんが、一応著作権は放棄しません。

再配布される方は出所をどこかに明記してください。

当方ブログ
「私的な鉄道模型の記録」  http://blogs.yahoo.co.jp/gacchan_byg

注意

cvPutTextJP というクラスにしてます。 .h だけなので適当に include して使用してください。
 
コンストラクタでフォント種別とサイズと weight を指定できますが、デバッグしてません。
 
"メイリオ" だけ見てみました。実装はソース参照お願いします。

また#include #pragma commen 等は適宜環境に合わせて修正して下さい。

中身はビットマップを取得してシコシコ書いてるだけですので、大きい文字サイズだと速度が落ちると思います。

説明 ( チョー簡単ですが・・・)

//
// cv::Mat をはみ出した時の挙動を指定する
//
enum JP_WRAP_TYPE {
JP_WRAP_VOID, // はみ出し部分は何もしません
JP_WRAP_CR }; // はみ出したら、なんちゃって改行します

//
// コンストラクタ
//
// std::string &_fontName = "メイリオ" フォントフェースを指定します
// int _fontSize = 32 フォントサイズを指定します
// int _weight = 0 フォントの幅(?)を指定します
// windows.h での参考
// FW_DONTCARE = 0;
// FW_THIN = 100;
// FW_NORMAL = 400;
// FW_BOLD = 700;
// CV_JP_WRAP_TYPE _wrapType = CV_JP_WRAP_VOID
// cv::Mat をはみ出した時の挙動を指定します
// int _gray = GGO_GRAY8_BITMAP
// グリフの諧調指定 GGO_GRAY8_BITMAPしか確認してません
//
cvPutTextJP(
const std::string &_fontName = "メイリオ",
const int _fontSize = 32,
const int _weight = 0,
const JP_WRAP_TYPE _wrapType = JP_WRAP_VOID,
const int _gray = GGO_GRAY8_BITMAP );

//
// 行の高さを取得します
//
int getBaselineDistance();

//
// 文字の出力幅を取得
//
int getCharWidth( const TCHAR *c );

//
// 文字位置を設定する
//
// cv::Point2i pos 文字の左上座標
//
// 表示位置の Point2i pos は文字列の左上の指定です。OpenCV の putText() は
// 左下がデフォールトのようですが、面倒くさいので左上オンリーです。
//
void setLocate( cv::Point2i pos );

//
// 1文字描画
//
// cv::Mat &mat 書込み対象の画像を指定します 現在は CV_8UC3 のみ
// TCHAR *c 書き込む文字列です
// cv::Scalar sc 出力色を指定します
//
// return: true == 補正した、またははみ出すから描画しなかった
// false == 問題なし
//
bool putChar( cv::Mat &mat, TCHAR *c, cv::Scalar sc, int _gray = GGO_GRAY8_BITMAP );

//
// 文字列の出力幅を取得
//
int getTextWidth( TCHAR *c );

//
// 文字列描画
//
// cv::Mat &mat 書込み対象の画像を指定します 現在は CV_8UC3 のみ
// TCHAR *c 書き込む文字列です
// cv::Scalar sc 出力色を指定します
//
void putText( cv::Mat &mat, TCHAR *c, cv::Scalar sc, int _gray = GGO_GRAY8_BITMAP );

ご利用される方はコメントいただけると嬉しいです〜

この記事に

  • 顔アイコン

    こんにちは。
    ご利用しませんがコメントトップゲットー!
    当方こちら方面はとんと疎いのですが、よく分からない単語が並んでいるのを読むとちょっといい気分になります(病気?)。

    [ banushi ]

    2014/7/18(金) 午後 1:47

    返信する
  • 顔アイコン

    banushi様
    そ・・・それは危険な兆候では???
    でも、何となくその気持ち分かります(笑)

    がっちゃん

    2014/7/18(金) 午後 2:03

    返信する
  • 顔アイコン

    スゴイです。 昔、NECの88でベーシックを勉強した事がありますが、行番号がありませんね。

    [ TOM2 ]

    2014/7/18(金) 午後 5:29

    返信する
  • 顔アイコン

    TOM2様
    こんにちは。うわ〜N88-BASICですか、懐かしいです。あの頃はハード自作っていうと本当に回路設計からやったもんですね。今回の言語はC++と言うやつです。

    がっちゃん

    2014/7/18(金) 午後 5:40

    返信する

顔アイコン

顔アイコン・表示画像の選択

絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
  • 名前
  • パスワード
  • ブログ

本文はここまでですこのページの先頭へ
みんなの更新記事