

私はZinnia-Tomoeと呼ばれるライセンスフリーの手書き文字認識エンジンを使ってiOSデバイスで漢字の入出力をさせるアプリを開発しています。  
Zinniaとは、文字記号その他任意のペンストロークを認識可能なオンライン入力アプリ、TomoeとはZinniaの機能を用いてオフラインで日本漢字や簡体中国語を入力する文字出力アプリ、と思っていただいて構いません。

私のしたいことは、UTF-8では定義されていない大量の文字を「非漢字」として「画像」で入出力したいというものです。

Tomoeには、「S式」と呼ばれる座標の羅列を一定の順番で並べて最終的には漢字ストロークを形成する機能が設けられています。

S式の一部を開示します。

(character (value 一)(width 1000)(height 1000)(strokes ((75 464)(923 468))))  
(character (value 丁)(width 1000)(height 1000)(strokes ((93 198)(913 205))((495
203)(470 847)(405 784))))

こんな感じで、出力したい文字と、座標を示す数字の羅列からなり、座標を追っていくことで最終的には漢字を「手書き」で認識するというものです。

しかし、私はUTF-8では未定義の「非漢字」を新たに文字としてアプリ内で利用するのを主目的としたく頭を悩ませており、そのための手段として「画像」として用いることで問題を回避したいと思っているのですが、これがなかなかうまくいきません。

例えば、漢字「留」や「劉」のうち1画目〜3画目だけからなる字は、UTF-8では定義されていません。従って、当然こちらの掲示板でも出力できません。なのでそれを回避すべくこの「非漢字(1画目〜3画目)」を「画像」という形を取って出力させる目的で、この「非漢字」を画像ファイル「img0001.jpg」などの名で保存してから、

(character (value Image("img0001"))(width 1000)(height 1000)…(以下略)

のように定義しました。しかしこれだと変換候補には『Image(”img0001”)』のうち1番目の英字と2番目の英字からなる「Im」としか表示されず、まともに機能しません。  
言い忘れましたが、複数並んだ漢字文字の変換候補にはそれぞれ、半角英数2文字、または全角1文字しか表示させないものとします。

ならばswitch文で「画像」の候補を選ばせるという手も考えたのですが、これもうまくいくかどうかは不透明です。

代替案はまだ幾つか胸に秘めているのですが、できるだけシンプルに仕上げたいです。そこで皆さまのお知恵を拝借いたしたく、こちらへ投稿いたしました。  
Zinnia-Tomoe自体の主たる開発言語はObjective-
Cですが、今回の質問では言語はSwift、フレームワークはできればSwiftUIの条件下でお願いします。


CC BY-SA 4.0
2022-09-08T09:48:40.323
91000
2022-09-09T08:16:36.103
2022-09-09T08:16:36.103
51822
40270
question
swift xcode swiftui
UTF-8で定義されていない文字を「画像」として出力するには？


質問の意図をとらえれていないかもしれませんが、漢字の座標がわかっているのであればSwiftUIのPathを使って表現できるかもしれません。

この記事のようにできないでしょうか？

[SwiftUI:
SVGをSwiftUIのPathに変換してコードを出力できるライブラリ作ったよ](https://zenn.dev/kyome/articles/0ea91b12ebd02b)


CC BY-SA 4.0
2022-09-08T14:06:31.623
91004
2022-09-08T14:06:31.623
40856
91000
answer