http://tabletpc.comgate.jp/

タブレットPC(Tablet PC)とThinkPad、iPhone、iPadについての情報、活用法、雑談など
[このサイトの使い方] [掲示板] [リンク集] [iPhone/Taiatari] [太郎君の備忘録・付箋] [iPod touch blog]

Google
<< October 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
COUNTER
  • 累計 
RECENT COMMENT
RECENT TRACKBACK
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
InkCanvasについて
前回のタブレット機能サポート範囲の話の続き。
.Net Framework3.0以降は従来のWindowsフォームに加えてWPFアプリケーションというのが選択できるようになった。
Windowsフォームベースのアプリケーションに比べてデザイン面で柔軟で凝ったアプリケーションが作れるようになった。
今後はこちらが主流になるのだろうか・・・。
でも今のところ、従来のWindowsフォームベースのアプリケーションの方が作りやすく生産性がよさそうだ。
WPFアプリケーションを作るのは若干敷居が高い気がする。

で、このWPFを使うとInkCanvasというコントロールが使えようになる。
これはInkPictureのWPF版で手書きのインク入力ができるコントロールになる。
InkPictureに比べて、格段に良いということはなさそうで、だいたい同じようなことができるのだが、試してみたところTabletPC SDKやマージモジュールを使うことなくWindowXPのPCでインクの入力ができるようだ。
.Net Framework3.0以降が動作するPCであればインクの入力ができるようなので、環境的には分かりやすく、作成したアプリケーションを配布しやすい。
ただ、.Net Framework3.0以降が必要なのでWindow2000では利用できないことになる。
(.Net Framework3.0はWindowsXP以降しかサポートされないので)

インクを使ったアプリケーションを作る上で、選択肢が一つ増えたようのなのでどう使い分けるかというところが悩ましい。
WindowsXP以降をサポートしたいのであれば、InkCanvasの方が良いように思う。
Windows2000もサポートするなら、InkPictureにするしかないがこの場合、別途TabletPC SDKをインストールする必要がある。
マージモジュールを使用すれば作ったアプリケーションを配布して実行することはできるが、インクは表示だけで入力することはできない。
この辺を考慮して、どちらを使うか決めるようになるようだ。

ただもう一つ重要なのは、InkCanvasはWPFアプリケーション用のコントロールなので、これを使うということは基本的にはWPFアプリケーションを作ることになる。
逆にInkPictureを使うなら、基本的にはWindowsフォームを作ることになる。
が、使いたいコントロールからアプリケーションのタイプが決められてしまうというのは若干強引な気もする。
というあたりも考慮されているのか、実はMicrosoftはコントロールを相互利用する仕組みも用意していて、WindowsフォームでWPF用のコントロールを利用する、あるいはその逆のことも実は可能だ。
ただ、やはり若干面倒で、たとえばInkCanvasのイベントをWindowsフォームで拾うとか、データを相互でやり取りするのに多少面倒な手続きが必要だった。
(筆者がうまい方法を知らないだけかもしれないが)
なのでやはり、従来のWindowsフォームアプリケーションを作るのならInkPicture、WPFアプリケーションならInkCanvasを使う方が自然だ。

とはいえ、いろいろとアプリを作る側にも事情があるので、その辺を考慮して最適な方法を選択するというのは若干悩ましい。

ちなみに筆者は、すでに作成済みのWindowsフォームアプリケーションがあったため、InkPictureを使ってみたが、やはりTabletPC Edition以外のWindowsXPもサポートしたい。
でも、TabletPC SDKを別途インストールするのも嫌だ。
ということで、Windowsフォーム上でInkCanvasも使うような形でアプリケーションを作ってみた。
で、作ってみたら、またいろいろと問題も出てきたりして、もうちょっと話が続く。




タブレット機能サポート範囲
VisualStudio等でペン入力などができるタブレットPC対応のアプリケーションを作ろうとすると、タブレットPC以外のPCでどこまでペン入力がサポートされるのか、タブレットPC以外でもアプリケーションが動作するのかということを考慮する必要がある。
たとえば、太郎君の備忘録では、Tablet PC SDKを別途インストールすることで、普通のPCでも利用することができるが、手書き文字の認識など一部の機能は利用できない。

タブレットPC以外で使うときTablet PC SDKをインストールするのも面倒なので、必要なモジュールを開発したアプリケーションのインストーラーに同梱することでTablet PC SDKが不要にならないかといろいろ試した見たのだが、結構、いろいろなケースが出てきたので、忘れないようにまとめてみる。

環境は大まかに分けると次の5パターン。
タブレットPC
タブレットPC対応ではないが、OSがタブレットPC対応(WindowsXP Tablet PC Edittion、Vista)
上記´以外のWindows+Tablet PC SDK
ぞ綉´以外のWindows+タブレット機能のマージモジュール
ゾ綉´以外のWindowsの通常の環境

い離沺璽献皀献紂璽襪Tablet PC SDKに含まれるタブレットPC用のモジュールを開発したアプリケーションのインストーラに取り込んでおくことで、アプリケーションをインストールした際にタブレットPC以外のPCでもタブレットPCの機能の一部を使用できるようになる。

これらのパターンでInkEditやInkPictureを使ったアプリケーションを使った場合、
,賄然すべてのタブレットPC機能に対応するので何も問題なし。
△皀泪Ε垢鬟撻鵑梁緲僂砲垢譴侈簑蠅覆靴隼廚錣譴襪、環境がないので未確認。
もマウスをペンの代用にできるが、手書き文字をテキストとして認識することはできない。
い和召PCで手書きしたインクデータを読み込んで表示することは可能だが、マウスで手書き入力することはできない。
ネ用不可。
となる。
とい脇韻厳覯未砲覆襪藩汁曚靴討い燭里世、意外なことにマージモジュールを使っただけではInkEditやInkPictureにインクを入力することはできず、読み取り専用の状態になる。
Microsoftのサイトでマージモジュールを使えば、インクの入力はできるようになるとの記述を見たことがある気がするが勘違いかな。
こちらには、やはりInkEdit、InkPictureはレンダリングのみ対応と書いてあるので、やはりマージモジュールだけでは無理なようだ。

ただ、筆者は最近開発環境をVisualSrudio2008に移行し、.Net framework3.5ベースにしたのだが、こうなるとまた少し話が変わってくる。

というところで、続きはまた今度。



Visual Studio 2008
最近、創作意欲が湧いてきて、また太郎君の備忘録をバージョンアップしようかな、などと思いつつとりあえず開発環境を見直しした。

以前は
Visual Studio 2005
Tablet PC Edition SDK ver1.7
.net Framework2.0

という組み合わせだったが、今度は
Visual Studio 2008
Windows SDK
.net Framework 3.5

にしてみた。

Tablet PC Edition SDK ver1.7
に入っていた内容は、Windows SDKに統合されたようだ。
タブレットPC用の環境も以前とは微妙に変わっていたりして、面白そうではある。
以前できたことは同様にできるけど、新しいAPIがあったりして、使おうとすると悩みます。
この辺は、今後書こうと思います。

Visuial Stusioは以前はフリーのExpress Editionを使っていたが、思うところがあって、とりあえずProfessional Editionの試用版を使う。
よさげだったらStanderd Edtionあたりを購入しようかと思う。
ところでVisual StudioはExpress Editionを使っていればアップグレード版を購入して使えるらしい。
だったら、通常版を買う人なんているのだろうか?

それとソース管理には以前からSubversionを使っていたのだが、Visual Stusioと連携するためのアドオンが今は存在することが判明。
AnkhSVNというのがそれで、Visual Stusio 2008にも対応していたので使ってみた。
まだ、ちょっと触った程度だけどなかなかいい感じです。
これでVisual Studioのなかから手軽にコミットできるので楽になった。
EclipseにSubversionのプラグインを追加して使っているような感じでVisual Stusioが使えるようになった。
日本語に対応していないのだけが難点ですが、まあ大丈夫です。

AnkhSVNを使うために、Subversionも最新バージョンに更新したりしたけど、インストーラーで最新版をインストールしただけで特に問題なかた。
こういうのをバージョンアップしたりするのって結構怖いですよね。

インクの保存とコピー方法
手書きデータのコピー今回は手書きのインクデータを保存する方法
方法は簡単で、Save()というメソッドでインクデータをまずbyte配列に変換する。
あとは、それをファイルに保存するだけだ。
下記がサンプル。
NoteInkPictureというのが、手書き入力用エリアのInkPictureオブジェクトである。

byte[] inkData = NoteInkPicture.Ink.Save();
FileStream stream = null;
stream = new FileStream("C:¥¥InkSaveData.isf",FileMode.Create,FileAccess.Write,FileShare.None);
stream.Write(inkData,0,inkData.Length);
stream.Close();

続きを読む >>
ペンの形状の変更方法
ペンの形状今回はプログラムでペンの形状を変更する方法のメモ。
タブレットPCのペンを使って描画する際、ペンの形状をプログラムから変更することができる
例えば、色を変えたり、細字にしたり太字にしたり、ペン先を丸くしたり、蛍光ペンのようにしたりということができる。
スクリーンショットはペンの太さを変えて描画してみた。
最後のは蛍光ペンを使ってみた。
ペンの太さについては、筆者のThinkPad X41 Tabletのペンは筆圧感知対応なので筆圧によっても微妙に太さが変わってしまう。したがって同じ設定でも微妙に太さは変わる。

ペンの形状の変更をするには、実際にはペンの設定というのはなくて、描画するInkPictureのプロパティを変えることによって行う
InkPictureのプロパティを変えると、その後、そのInkPictureに描画するときにペンの形状が変わる。
続きを読む >>
SubversionとTortoiseSVN
ちょっとタブレットPCから脱線するけど、プログラミング関連ということで、面白いのがあったので紹介。
Subversionというフリーのバージョン管理ソフトです。
同種のソフトではVSSCVSといったものが有名だが、最近はSubversionが流行らしい。
Subversionではコマンドベースで操作をするが、TortoiseSVNというのをあわせて使えばGUIでの操作が可能となる
ためしにインストールして使ってみたが、これがかなりいい感じだった。
今後は、VSSやCVSに変わって主流になりそうです
Subversionのウリは
VSSのようにファイルをロックするようなモデルではなく、CVSのように複数の人が同時に変更できるモデルであること
バージョンの管理がファイル単位でなく、プロジェクト全体を単位に管理できること
など。
続きを読む >>
InkPictureのテキスト変換
nextInkEditとInkPictureでチラッと書いたInkPictureのオブジェクトに書いたインクデータのテキストへの変換方法について
コードはこんな感じになる。
Recognizer recognizer = recognizers.GetDefaultRecognizer();
RecognizerContext context = recognizer.CreateRecognizerContext();
context.Strokes = InkPicture.Ink.Strokes;
context.EndInkInput();

RecognitionStatus status;
RecognitionResult result = context.Recognize(out status);
return result.TopString;

続きを読む >>
太郎君の備忘録
太郎君の備忘録
最近、日曜プログラミングにハマってしまい、こんなのを作ってしまった。
手書きのメモ帳を作ろうと思ったのだが、プログラミングが面白いのでいつの間にが作ることが目的になってしまって、本末転倒な感じ。
ペンを使ってメモをしたり、デスクトップに付箋を貼ったりするツールです。
が、最近は子供のお絵かきツールにされてしまったムニョムニョ

Visual Studio 2005を使ってC#で作った。
筆者はVisual StudioC#も使ったことがないけど、案外簡単に作れてしまうのでびっくり。
しかも元手0円(本とかは買ったけど)。
続きを読む >>
InkEditとInkPicture
タブレットPC用のアプリケーションを作るのは実に簡単で、前回の設定を行っておけば、Visual StudioInkEditInkPictureオブジェクトをフォームに貼り付けて実行するだけで、もうペン入力が可能なアプリケーションが出来上がる

InkEditの方はペンで入力すると即座にテキストに変換していってくれるので、ペンで描いた内容を全てテキストとして変換する必要があるならこれを使うといいみたいだ。
例えば、下のようにペンで書き込むと
InkEdit1
続きを読む >>
Tablet PC SDK環境設定
Tablet PC SDK 1.7をインストールしたので、Microsoft Visual Studio 2005 Express Editionで使えるように環境設定をしてみた。
ちなみに筆者はC#.NETを使うことにした。
C++とかVBでも、それほど変わらないと思う。

まずは、Visual Studio .NETTablet PC SDKの参照を追加する。
手順は、

きのこレッドまずプロジェクトを開いて、プロジェクトメニューの中の参照の追加を選択
きのこレッド.NETタブのMicrosoft Tablet PC APIを選択してOKボタンを押す

これで、Tablet PC SDKの参照が追加されて使える状態になるらしい。
続きを読む >>

(C) 2017 ブログ JUGEM Some Rights Reserved.