サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
qiita.com/496_
はじめに AppleのIME APIはドキュメントを読んだだけでは実装できないと思うので、わりと有用な記事になるかもしれません。 NSTextInputClient Objective-Cだと10.5以降、Swiftだと10.10以降に対応という楽しいProtocolです。 他のIME APIと同様に、自前のTextViewを作るときくらいにしか使われません。 (https://developer.apple.com/reference/appkit/nstextinputclient?language=objc) 大まかな実装の手順は以下のとおり。 NSView<NSTextInputClient>を継承したViewを作る このView上に編集対象のテキストを表示可能にする NSTextInputClientの関数を実装する これで、IMEを正しく扱うことができます。 WindowsのT
iOS 10以降のApple Color Emojiで使用される独自画像フォーマット"emjc"の仕様解析とデコーダ公開についてiOS#C#OpenType#カラー絵文字フォント#バイナリ 前置き / Apple Color Emoji on iOS 10+ Apple Color EmojiはmacOS / iOSで使われているカラー絵文字フォントです。 ここではその中でもiOS 10以降に搭載されているApple Color Emojiのフォントの中身の画像を解析してデコーダを公開した話をします。 解析期間: 2018/01/14, 2018/07/18 - 2018/08/13 デコーダ: https://github.com/cc4966/emjc-decoder カラー絵文字フォント (OpenType) 世には4種類のカラー絵文字フォントの仕様がある COLR / CPAL W
Text Services Framework (TSF) とは TSFはIMEとアプリケーションの間の層で、IMMの後継のようなものです。 IMMと大きく異なるのは、未確定文字列の描画の義務がアプリケーションにあるということです。 (IMMではIMMにいい感じに未確定文字列を表示してもらうことが可能でした) TSFに対応したアプリケーションでは以下の内容を実装するこのになります。 TSF-awareなアプリケーションだという宣言 IMEからのテキストの取得 IMEからのテキストの変更 IMEからの選択範囲の取得 IMEからの選択範囲の変更 テキストの範囲からディスプレイ上の座標範囲の取得 ディスプレイ上の座標からテキスト座標の取得 IME側にテキスト、選択範囲、レイアウトの変更等を通知する コード的に言えば、以下のような内容にあたります。 ITextStoreACPを継承したクラスの用意
カラー絵文字とは ここでカラー絵文字と言っているのは、🗻や🗾などのように、環境によってはプレーンテキストであるにもかかわらずカラフルに表示される文字のことです。 カラー絵文字が表示される二つの方法 画像が表示されている サイトやアプリケーションによっては定義された文字列が対応する画像に差し替えられて、さも文字であるかのように表示されるものがあります。 こちらの話には全く興味がないので、これ以上は省きます。 フォントがカラフルな文字を持っている 数年前まではプレーンテキストには色という概念が存在しませんでした。 そこに色の概念が入り込みました。 これは、フォントの中にそうした情報を含めることができるようになったためです。 もちろん、カラー絵文字が表示されるからと言って、プレーンテキストの方が大きく変わったわけではありません。 なのでそうしたフォントがない環境では絵文字はこれまで通りモノク
IMEとは 残念ながら、キーボードのキー数はUnicodeのコードポイント全てをカバーするほど多くはありません(桁が3つほど足りませんね)。 そのため様々な文字を入力する必要のある言語では、その入力の際にInput Method Editorと呼ばれるものを挟みます。 例えば日本語では入力した文字列のかなを入力し、それを適切に漢字などに変換するという実装になっています。 例えば、 Microsoft IME Google日本語入力 ATOK SKKなど アプリケーションはキーボードからではなく、IMEのAPIを通して文字列を受け取ることで日本語や韓国語、中国語といった様々な言語を共通の仕組みで扱うことができます。 また、昨今では、このIMEのAPIを挟むことで、手書き文字入力や音声入力といった様々な入力方法に対応してきています。 IME API IMEのAPIを直接利用する必要がある状況と
OpenTypeというのは世界中で最も使われているフォントファイル形式の仕様です。 仕様はこことかにあります。 これを理解すればだいたいOKです。 THE END さて、仕様を読むのが面倒な方は下の続きもどうぞ。 OpenTypeフォントの構造 簡単にまとめると以下のような構造です。 ヘッダ データ 簡単ですね。 そして、このヘッダの中には それがどういう情報であるのか 見るべきデータがどこにあるのか が書かれています。 データの中にもまたヘッダがあることがあります。 そこにもやはり、それがどういう情報であるか、次に見るデータがファイル中のどこにあるか、ということが記されています。 冒頭に提示した仕様は、ヘッダがどのような構造体なのか、データがどういう意味を持つかということをまとめたものになります。 OpenTypeテーブル フォントはヘッダとデータで構成されているというお話をしました。
簡易・縦書きエディタの作り方 テキストファイルがバイナリデータであることを理解する 文字を表示するためにはフォントが必要であることを理解する ここまで理解できればあとは作るだけです 文字列に対応するグリフをビットマップデータにするプログラムを書く ビットマップデータをいい感じに配置するプログラムを書く マウスやキーボードにいい感じに反応するプログラムを書く 各OSのIMEといい感じにやり取りするプログラムを書く 細かいところを作る 完成 実際の内容 1.~2.と6.の内容はまた別の機会に譲ることにします。 今回は3.から5.までの内容をざっくりと書きます。 さらに、ここでは複雑な機構は考えないことにします。 具体的には次のような状況を想定します。 フォントはOpenTypeを想定 OpenTypeはフォントファイルの仕様のひとつです OpenTypeについての簡単な解説はまた後日 日本語的
このページを最初にブックマークしてみませんか?
『@496_のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く