和書体 - アプリリリース2018年03月02日 16:23


和書体

「和書体」の名称で、ユニバーサルWindowsアプリをリリース。UWPアプリで日本語フォントがどのような見栄えになるか、確認するためのツール。自身の必要から作ったもの。

※アプリのページ

開発時間は20時間ほど。簡単な機能なので、短め。フォントの一覧の生成と、縦書き表示にWin2Dのパッケージを利用。MS提供のもの。

Win2Dのテキスト表示は、Canvasからのイベントハンドラの中でDrawTextを呼び出して行う作りで、癖が強い。そこを突破すれば、なんとか。

今回、CanvasTextLayoutを使用したが、マニュアルに第1引数の説明が漏れており、サンプルのコードをGitHubで探す。ResourceCreatorを指定するのだが、イベントハンドラで受信したsenderを設定すれば良い。

実際に表示してみると、フォントにより、癖がある。変わっているのが、メイリオで、FontStyleをItalicにすると欧文フォントのみ斜体になる。Obliqueにすると全体が斜体になる。他は、ItalicでもObliqueでも変わらないようす。

あとは、環境依存文字の扱い。漢字の例文に「秖」の字があるが、サポートしているフォントとそうでないものは半々くらいか。漢文の表記でもないと関係ないだろうけど。

なお、サンプルの出典は、以下の通り。
・漢文;白楽天の太行道より。古文真宝前集から。
・長文;シャーロック・ホームズの短篇から、The Adventure of the Blue Carbuncleから私訳。拾った鵞鳥についての新聞広告文。

古代の印旛沼周辺2018年03月02日 18:17


古代の印旛沼周辺

麻賀多神社巡りを何度かしたが、印旛沼周辺に多くある、宗像、鳥見、麻賀多神社についての企画展を見つけ、印旛歴史民俗資料館に足を運ぶ。

宗像神社は、福岡県の大社からの勧請。鳥見神社は、物部氏縁のものか。それぞれ、この地の人びとが受容し招いたのか、遠くから渡ってきたのか。平城京の頃、この地はどのようであったのか。想像を巡らす。

本企画は、教室一部屋くらいの展示。写真を除く文字情報は、冊子を配布。他に、出土品やかつての生活品を並べる常設の展示もあり、無料の施設とは思えない、なかなかの充実ぶり。

印旛歴史民俗資料館

場所は、かつての宗像村役場跡の近く。道が入り組んでいるが、小学校を目標にするのがいい。

ほころび始める桜

ひととおり見た後、新川沿いを、道の駅やちよを目指す。沿道は、ほころびかける桜並木。

まだ帰らないオオバン

川面にはオオバンが多数。陸に上がってひなたぼっこするものも。

プライバシーポリシーとサポート情報 - 大きな電源ボタン2018年03月04日 17:34

本アプリについて (About this app)

※現在、Desktop Bridgeアプリをストアにて配布する権限を申請中です。

標準の電源ボタンは、比較的小さいのと、軽くタッチしてメニューを出すという操作が、年配の方など、やりにくそうにしているのをよく見かけます。本アプリは、スタートメニューに貼り付けて、「電源を切る」と「再起動する」を大きなボタンで指示できるようにします。

UWPアプリには電源操作のAPIは開放されていませんので、デスクトップアプリをパッケージ化して、ストアアプリとしています。

※アプリのページ

プライバシーポリシー (Privacy statement)

大きな電源ボタン
対象アプリ;大きな電源ボタン

本アプリの製作者である The Fourteenth Lab (第十四工房) は、本アプリによって、お客様の個人情報およびプライバシーに関する情報を収集しません。

サポート情報 (Support)

ご質問や不具合のご連絡は、このページの「コメント欄」をご利用いただくか、「このブログについて」に記載の連絡先までお願いします。

使い方 (How to)

スタートメニューへの配置

1) スタートメニューの使いやすい位置に配置します。

大きな電源ボタン

2) プログラムを起動すると、スクリーンの中央にメニューが出ますので、いずれかのボタンを押して、所定の動作を起動します。

あらかじめのおことわり (FAQ)

1) スタートメニューに貼付すると、比較的大きなアイコンで目立ちますので、お子様などによる誤操作には、気をつけてください。

2) 電源を切る、再起動する、いずれの場合も、仕掛かり中の作業は失われますので、ファイルの保存など忘れずに実行してから実施してください。

Windows Developer Day2018年03月08日 08:44


Windows Developer Day 2018

今朝(3/8)のWindows Developer Day。午前2時からなので、録画で視聴。Windows10の今後のUpdateの目玉を紹介する催し。今回の目玉は、機械学習向けのML APIの提供か。

1) 最初に紹介されたのは、WebViewのベースをIEからEdgeにする話。
WPFベースのアプリでも、最新のWebエンジンを利用できる。

2) 2つめは、インストールパッケージのMSXI。
appxやmsiのスーパーセット。デスクトップアプリのインストール環境の改善を目指す。更新時の更新量の削減などを実現。

3) 3つめは、Adaptive Cards。
JsonデータをMicrosoft Graphを活用し、様々なプラットフォームでカード表示できるようにするもののようす。UI機能追加の一つ。Notificationの強化か。今後の目玉になるTime Lineとの連携をデモ。Skypeなどとも連携する。

4) 4つめは、AI on Windows。Windows ML API。
モデルをロードして、Input、Outputを定義し、Evaluateを呼び出す流れでのアプリの開発。また、CPU、GPU、VPUをソフトウェアから隠蔽。VPUは、Intelと協業。MLのモデルは、ONNXをサポート。ストアでの流通を図る。流通するモデルに使えるものがあれば、迅速に開発ができるようになる。文字認識や画像認識をデモ。Q&Aでも一番話題になる。

5) 5つめは、Windows IoT。
Cloud(Azure)との連携、高いセキュリティ、デスクトップなどと共通の開発環境、これらのメリットを説明。マーケティングメッセージが中心。

司会者が、「owesome!」を連発するのが気になる。あまり良くない語感との印象を持っているのだけど、最近は違うのかな。「やばい」に近い傾向なのかしらん。

WPFのBindで自前のクラスからデータ供給2018年03月17日 13:25

UWPからは利用できないWindowsのAPIにアクセスするため、WPFのアプリに取り組んでいるが、Bindが思うようにいかない。UIの初期化後の画面では、想定するデータが設定されているが、その後の更新を反映しない。GetBindExpressionや、PropertyChangedのイベントハンドラを用意して確認してみると、うまくいきそうなのだけど。

XAMLでデータ供給元の定義

WindowのResourceで、データ供給元の定義。20行目で、システムボリュームに関するデータを供給するクラスを定義。

Bind先のSliderの定義

343行目でSliderの定義。これは、修正後。修正前は、こんな感じ。

Value="{Binding Source={StaticResource SystemVolume}, Path=CurrentVolume, Mode=OneWay}"

345行目は、Sliderの値をTextBlockで表示。隣のSliderからデータを読み取る。これは、問題なく動作する。

DataContextの再設定

いろいろやって、たどりついたのがこちら。

39行目;UIの構築完了を受けて、データ供給元のオブジェクトを生成。
対象のクラスは、INotifyPropertyChangedを実装していること。
49行目;Sliderを格納するGridのDataContextに、生成したオブジェクトを設定。

WPFのBindに関するHow-toの文書に、それらしいことが書いてある(最後の方、Howeverの後)。このあたり、UWPでは静的な定義をきちんとしておけば、よしなにやってくれていた。x:Bind など、使い勝手のよい拡張も進んでいる。

UWPもWPFも、同じような感覚で作っていけるのだけど、こうしたちょっとした違いが大変。

Bitmapイメージにテキスト文字列を書き込む2018年03月21日 13:58

UWPアプリにて、テキスト文字列を書き込んだBitmapイメージを得るには、RenderTargetBitmapが使えるが、UI上に表示されているものでないと生成できない。

素のイメージなら、pixelデータを格納したbyte配列を用意し、WritebleBitmapにstream経由で流し込み、できあがったWritableBitmapのPixelBufferからSoftwareBitmapを生成できる。では、テキスト文字列をどう書き込むか。

Win2Dのパッケージを用いると、このあたり解決できそう。

ここでは、Bitmapイメージを得て、Clipboardにイメージデータとしてコピーする。

Bitmap上にテキスト文字列を書き込む

220行;CanvasDeviceを生成。実際のCanvasの代わり。
221行;CanvasRenderTargetを生成。SoftwareBitmapの代わり。最初の引数のICanvasResourceCreatorに一つ前で作成したCanvasDeviceが使えるのがポイント。
223行以下;テキスト文字列の準備
245行;Win2Dでは、DrawXXXは、イベントハンドラの中で用いるのだが、マニュアルでSessionを作成することもできる。Win2DのArticlesの"Offscreen drawing"にあるとおり。
260行;Bitmap書き出し先のRandomAccessStreamを生成。
262行;書き出しの実施。BitmapEncoderのFlushAsyncの代わり。ファイルへの書き出しもできる。この先、BitmapDecoderにつなげてもよい。
268行;RandomAccessStreamReferenceを生成。Clipboardにデータを渡すDataPackageはこの型を要求する。
269行;DataPackageに、Bitmapイメージを供給するRandomAccessStreamReferenceを設定。

色タイル

実際にクリップボードにコピーされたBitmapイメージをペイントソフトでクリップボードから貼り付けたようす。

ほうとうもどき2018年03月27日 21:46


ほうとうもどき

ゆるキャンを見ていてどうしても気になるのは、ほうとう。鍋の季節もそろそろ終わり。同じ関東の一都六県の仲間うち、なんとかなるだろうと、近所のお店を巡る。

ところが、甲州味噌がない。地元の味噌に、味噌で有名な信州ものは当然として、九州各県や中部の八丁味噌、青森の味噌などはあるのに、甲州がない。かなり大きめのスーパーや地方の物産を扱うお店もあわせて5軒ほどまわってみたが収穫はなし。

仕方がないので、広島のもので、米味噌と麦味噌の合わせ味噌のよさそうなのがあったので、これを選択。麺のほうとうは、こちらは期待していなかったが、群馬の煮込み用の平打ち麺があったので購入。あとは、ごぼうとかぼちゃを必須に、根菜やきのこ類を選んで煮込む。甘めの味噌のせいか、具材も分量も適当な割に味はまとまる。

千葉から見ると、隣県の茨城は当然として、栃木や群馬の産品もそこそこ手に入るが、ワインは別格として、山梨はなかなかに遠いようだ。