#ソフトウェア

Tclのトークン分割機能をC/C++から直接呼び出してみるテスト

Tcl を C/C++ で活用する・・・というと、Tcl_Eval で Tcl の各種コマンドを呼び出す方法をまず思いつきますが、 Tcl_Eval を使う以外にも、文字列処理や、ファイル処理、参照カウンタ式のオブジェクト管理等、 色々便利そうな API が結構揃っていて、純粋に…

Ghostscriptを使ってPDFにしおりをつける

フリーソフトでPDFにしおりを付加する機能のあるものがなかなか見つからなかった のですが、実はGhostscriptを使えば結構簡単にできるということがわかりました。 しおりの文字列を日本語にしたい場合は、BOM付きのUTF16(BigEndian)を8進数表記にすれば よい…

VS2008でTclVFSをtcl.8.5.15に対応させる方法 (VS2012、tcl 8.6.8 追記)

不具合現象 Tcl 8.5 系の現在の最新版である Tcl 8.5.15 と TclVFS 20080503 を VS2008 Express Edition 32bitモードでビルドしようとしたところ、下記エラーが出てしまいました。 <Tcl 8.5.15 + TclVFS 20080503 32bit モードでのビルドエラー内容> =====…

std::lower_bound、std::upper_boundの関係をイラスト化してみた

ソート済配列に対して2分探索をしたり、昇順(または降順)の状態を維持したまま配列に要素を挿入したいといった場合、C++ではstd::lower_bound や std::upper_boundを活用すると便利ですが、それぞれが返すイテレータがどこを指すのか理解が曖昧だったので、…

Base16kエンコーダ/デコーダ

文字列にバイナリを埋め込む方法としてbase64が良く使われていますが、 バイナリを埋め込んだ文字列の 転送/格納にUTF16を使用する場合、 base64文字列をUTF16で扱うことになるため、上位8ビットが丸々0になり、 転送/格納効率が非常に悪くなります。 UTF16…

luaで、luaの関数を呼ぶC++の関数をluaから呼んでみた

引数2個、戻り値1個のlua関数を引数にとり、 実行されると与えられた引数の関数に5,15を入れて呼び出し、 得られた戻り値を2倍したものを返り値とするlua関数をC++で作成しました。 大変ややこしいですが、C++ => LUAの呼び出し、 LUA => C++ の呼び出しを …

BLTのgraphのmarkerでグラフにお絵かき

コピーレフトのないオープンソースで、何か図を書いた後emfファイルに書き出す、 この要件を満たすものを探したところ、以前少し触れたBLTが使えることがわかりましたので、 やり方をメモします。 BLTのgraphを使うと、グラフをtcltkのウィンドウ上に描画で…

TclTk + [Incr Tcl] + [Incr Tk] + [Incr Widgets] + TclVfs + Metakit をVisualC++を使ってソースから導入するメモ 続き

前のエントリの書ききれなかった続き * 7. Incr Widgetsのインストール -7.1. VisualStudio2008コマンドプロンプトでwork/iwidgets4.0.1/winにcdで移動 -7.2. nmake -f makefile.vc install INSTALLDIR=..\..\inst * 8. TclVfsのコンパイルとインストール -8…

TclTk + [Incr Tcl] + [Incr Tk] + [Incr Widgets] + TclVfs + Metakit をVisualC++を使ってソースから導入するメモ

* 1. ソースのダウンロード -1.1. TclとTkのソースをダウンロード URL: http://www.tcl.tk/software/tcltk/download.html -1.2. IncrTclのソースをダウンロード (3.4.1と3.2.1をダウンロード) URL: http://incrtcl.sourceforge.net/ -1.3. IncrWidgetsのソー…

WMFやEMFを上下2分割して2ページに印刷するサンプルプログラム

プレゼン資料を上下2分割して2ページに印刷したい用事があったので、やり方を色々探したんですが、なかなか見つからなかったので、自前でプログラムを作ってみました(1)。このプログラムはWMFやEMFを上下2分割して2ページに印刷することができますので、プレ…

xmlファイルの一部だけを編集できるhtaアプリ

xmlで書かれた設定ファイルの特定のattributeやinnerTextだけを変えたいとき、 その変えたい部分だけを表示・編集できるツールをhtaで作成してみました。 xmlNodeEditor.hta内のxpathesは、xmlファイルの編集対象箇所を表しています。 各行の1つめは編集対象…

dlib C++ ライブラリ バージョンアップ (ver 17.6)

Davis E. King氏が作成・配布している、dlib C++ ライブラリのバージョンが17.6になりました。 今回のバージョンアップで、下記機能が本家ライブラリに組み込まれました。 ・GUIウィジェットのUnicode化 ・text_fieldウィジェットで、IME/XIMによる日本語入…

dlib C++ ライブラリ 本家アップデート(Ver.17.1)

dlib C++ ライブラリの追跡の書き込みがここのところご無沙汰になってました。 Davis E. King氏が作成・配布している、dlib C++ ライブラリのバージョンが17.1になりました。 最近の更新はGUIに関するものが多いようです。 そのGUI機能で追加されたうち、気…

dlib C++ ライブラリでAntTweakBarを使う

OpenGL機能を追加したdlib C++ライブラリでAntTweakBarを使うことができました。 サンプルのソースと実行ファイルは↓にあります。 http://www.tok2.com/home/mocchi2008/samples/dlib_anttweakbar/dlib_anttweakbar.htm 関連 - dlib C++ Library 目次 - dlib…

dlib C++ ライブラリ 本家アップデート(Ver.16.1)

Davis E. King氏が作成・配布している、dlib C++ ライブラリのバージョンが16.1になりました。 今回のバージョンアップにより、フォントの切り替えができるようになりました。 これまで配布してきた日本語化パッチでは、日本語に対応しているフォントクラス…

dlib C++ ライブラリ メジャーバージョンアップ

dlib C++ ライブラリのバージョンが16.0になりました。 メジャーバージョンの変更(15=>16)ということで、色々追加修正が施されている模様です。 GUI周りで気になる追加修正点が数点あります。 ・winmain関数の廃止 バージョン15台では、winmain関数がエント…

dlib C++ 本家ライブラリ アップデート + initialize_opengl関数バグ修正

dlib C++ ライブラリの本家のバージョンが15.11になったようです。 以下のような追加修正がそれぞれのバージョンアップで行われているようです。 15.9 => 15.10 : 描画処理にアルファブレンドを追加 15.10 => 15.11 : バグ修正 それと、自分がパッチとして追…

dlib C++ ライブラリにglutの幾何系関数をそのまま組み込んでみた

dlib C++ライブラリにfreeglutのソースを使ってOpenGL機能を組み込んだので、 ついでにfreeglutの幾何系関数やティーポット関数もそのまま組み込んでみました。 以下の関数をdlib名前空間に入れてあります。 void glutWireCube( GLdouble size ); void glutS…

dlib C++ Library 目次

自分が書いたdlib C++ ライブラリ に関するブログエントリが多くなってきたので目次を作ってみました。 - dlib C++ ライブラリ バージョンアップ (ver 17.6) - dlib C++ ライブラリ 本家アップデート(Ver.17.1) - dlib C++ ライブラリでAntTweakBarを使う - …

dlib C++ ライブラリ OpenGLサンプル

前回、dlib C++ ライブラリでOpenGLを使えるようにしたことを紹介しました。 前回から仕様を修正したので、使い方が少し変わりました。 OpenGL機能の実装のために、freeglutのソースを 拝借していますので、freeglut用のCOPYINGファイルもパッチの中に入れて…

dlib C++ライブラリでOpenGLを使えるようにした

dlib C++ライブラリでOpenGLを使えるようにしてみました。 本家が ver.15.8にバージョンアップしていましたので、ついでにバージョンも揃えました。 ↓差分パッチ バージョン15.8 base_windowに3つの関数を追加してあります。 ・initialize_opengl ・swap_bu…

dlib C++ ライブラリ winmain関数について

dlib C++ ライブラリには、console版とgui版があります。 通常、C 及び C++ はmain関数から始まりますが、dlib C++ライブラリの gui版を使うときは、main関数の代わりにwinmain関数を使います。 winmain関数の引数と戻り値の型は、↓のようになってます。 voi…

dlib C++ライブラリ GUI部品のマルチバイト化

dlib C++ライブラリのGUI部品をマルチバイト化して日本語の表示をできるように してみました。 スクリーンショットはオリジナルのアーカイブに含まれているサンプル gui_api_ex.cppを一部修正したものです(gui_api_ex_ja.cpp) X11環境でこのサンプルをコンパ…

オープンソースでGPLでもLGPLでもなくてマルチプラットフォームなC/C++用GUIライブラリ

探してもなかなかいい感じのGUIライブラリがありません(T-T) タイトルに書いた条件を全部満たしてるライブラリで最近新たに発見したものをひとつ紹介します。 - dlib C++ライブラリ boostライセンスです。 GUIの他にも色々機能を持っているようです。 少し触…

font_rendererバージョンアップ

font_rendererをバージョンアップしました。 バージョン 1.10 => 1.20 更新内容 ・同じ条件で何回もレンダリングする際のパフォーマンスの向上(createメソッド) ・ascender,descenderも取得できるようにした ・バグ修正 createメソッドは,前回のレンダリン…

NPlot で値の表示範囲を設定する方法

割と基本的なことだとは思いますが、意識せずにプログラミングすると 嵌る恐れがある(というか、嵌りました)ので、やり方をメモします。 表示範囲を指定してグラフを描画したいときは、XAxis 及び YAxis の WorldMax, WorldMin にそれぞれの値を設定すればよ…

System.Drawing.Bitmap画像を使った高速な画像処理プログラミング その2

System.Drawing.Bitmap画像を使った高速な画像処理プログラミングについての続きです。 .Net Framework のベンチマークの公開にはややこしいルールがあるようなので、 ベンチマーク結果を公開する代わりにベンチマークを取れるプログラムを公開します。 こう…

System.Drawing.Bitmap画像を使った高速な画像処理プログラミングについて

はじめに .Net Framework の System.Drawing.Bitmapを使うと、jpegやpngなどの画像データを簡単に扱うことができます。しかし、このクラスに用意されている、各画素にアクセスするメソッド SetPixel はあまり高速ではありません。 閾値処理、エッジ検出など…

NPlot でマーカー付き折れ線グラフを使いたい!

まず、先日公開した、PDF出力機能付きNPlotで、僕が追加した箇所に一部ミスがありましたので、修正しました。 - http://www.geocities.jp/mocchi_2003/soft/NPlot_with_self_patch_051.zip NPlotには、折れ線グラフ(LinePlot)も、マーカーだけのグラフ(Point…

NPlot にPDF出力機能を追加しました

先日紹介したグラフ描画ライブラリNPlotに、PDF出力機能を追加してみました。 オリジナルのNPlotは出力先として、ベクタ系の画像をサポートしていないようだったので、 PDFを作成できるライブラリiTextSharpを使って、PDF出力機能を追加しました。 LaTeX用の…