コンソールの漢字反転

コンソールの漢字反転

現在開発中のアプリケーション(長期ソフトウェア)の場合、テキストモードでは相手の馬が反対であるため、馬のグラフィックを反転させる必要があります。ただし、Unicodeは逆漢字文字を提供しません。私はこのウィキペディアの記事でこの図に似たスタイルで漢字反転を検索しています。https://en.wikipedia.org/wiki/Shogi#Player_rank_and_handicaps
彼らはこれにCSSを使用します。フィルタプログラムまたはカーネルAPI(ioctl)を使用できます。ご回答ありがとうございます。

ベストアンサー1

テキスト反転をサポートする端末エミュレータはなく、CSSに似たものもありません。

技術的には、一種のエスケープシーケンス(おそらく太字、イタリック体、アンダースコアなどのためのANSIシーケンスなど)があります。理想的には、少なくともいくつかの一般的なターミナルエミュレータ(少なくともxterm、vte、iterm2)でもこの機能を実装します。

おそらく、あなたのアプリがこの機能を使用する唯一のアプリであることを考慮すると、これが起こる可能性はほとんどないと思います。

ターミナルエミュレータ内で絵を描くためのさまざまな方法について知りたいかもしれません。可能なオプションには、RegisとSixel(聞いたことがありますが、よくわかりません。適切かどうかはわかりません)、またはTerminologyやTerminologyなどの一部の端末エミュレータによって提供されるカスタムソリューションがあります。 Kitty(私もよくわかりません)これらのソリューションです。ただし、これらのソリューションを使用すると、アプリケーションを特定の端末エミュレータで実行するように制限できます。さらに、漢字は直接描く必要があります。

私の結論は、端末エミュレータが望むことを実行できないことです。したがって、反転した文字の外観が本当に必要な場合は、テキストモードを選択するのは悪い選択です。テキストの回転が非常に重要なGTK +やQtなどのグラフィックツールキットで作成されたグラフィックアプリケーションを選択する必要があります。

修正する:

ECMA-48はSCO - SELECT CHARACTER ORIENTATIONエスケープシーケンスを定義します。\e[0 eデフォルトの方向を選択する必要があり、\e[1 e後続の文字は反時計回りに45°回転する必要があります\e[7 e。私はこれがどこにも実装されていないと思います。また、基本と反転以外のグリフを増やしてカットする方法もわかりません。とにかく、ターミナルエミュレータがリバーステキストを実装している場合は、このエスケープシーケンスを使用するのが妥当である可能性があります(数値引数として0と4のみを許可しても)。

おすすめ記事