
2025/12/16 3:16
Chafa: Terminal Graphics for the 21st Century
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
Chafa は高速で汎用性の高いターミナル画像レンダラーで、ANSI X3.64 標準を使用して静止画とアニメーション両方の画像を表示できます。JPEG、PNG、GIF(アニメーション含む)などの人気フォーマットに対応し、Sixels、Kitty、iTerm2、および Unicode モザイクという複数のターミナルグラフィックス標準へ出力します。ユーザーは複数の選択可能な範囲から Unicode 文字を組み合わせることができ、CJK サポート用に全角文字も使用できます。また、任意の FreeType 対応フォントファイル(TTF、OTF、PCF 等)からグリフを読み込み、真色 (truecolor)、256 色、16 色、または単純な前景/背景のいずれかのカラーモードを選択できます。アルファ透明度はすべてのカラーモードで機能し、アニメーションでも同様です。
Chafa は C 言語で実装され、安定した SIMD 最適化済みマルチスレッド API を提供します。モダンおよびクラシックなターミナル/ターミナルエミュレーターの両方で動作します。Python バインディング(Erica Ferrua Edwardsdóttir による)と JavaScript バインディング(Héctor Molinero Fernández による)が利用可能で、各バインディングには専用のドキュメントサイトがあります。
プロジェクトの変更ログは、一貫した性能向上を示しています(例:バージョン 1.2.0 では 75 % の高速化)、Sixels(v1.4.0)など新しいフォーマットサポート、出力幅拡大(v1.6.0)、機能拡張(v1.8、v1.14)が追加されています。ドキュメントにはコマンドラインヘルプ (
chafa --help)、man ページ (man chafa)、ギャラリー例、C API ドキュメント、および Matrix チャットと公開フォーラムによるコミュニティサポートが含まれています。
今後のリリースでは機能追加と最適化が継続される見込みで、ターミナル形式互換性の拡大や色空間処理の洗練化も期待できます。開発者にとっては、Chafa のバインディングを利用することで豊富なコマンドラインインターフェースが実現し、さまざまな業界でテキストベースワークフローにおける視覚データ提示の新たな可能性を開きます。
本文
未来は(まだ)今
21 世紀の UX をさらに向上させる新機能が登場しました。
Chafa では、お気に入りの端末エミュレータで、画像やアニメーションを非常に合理的な近似として表示できるようになりました。ANSI X3.64 の力を実感してください!
例
U+2580(上半分ブロック)だけを使っても十分な結果が得られます。
他の端末グラフィックスパッケージでも同様に、Chafa は
chafa --symbols vhalf を使用して実装しています。ただし、Chafa はデフォルトでより多くのシンボルを利用するため、画質が大幅に向上します。
ギャラリーにはさらに多くの例があります!
主な機能
- 画像形式はほぼすべて対応(アニメーション GIF も含む)
- 出力先は代表的な端末グラフィックフォーマット:Sixels、Kitty、iTerm2、Unicode モザイク
- 最適出力のために複数の範囲から選択可能な Unicode シンボルを組み合わせる
- 全角文字(中国語・日本語・韓国語など)もサポート
- FreeType がサポートする任意のフォントファイル(TTF、OTF、PCF など)からグリフを読み込める
- 真彩色、256 色、16 色、単純な FG/BG の複数カラー モードに対応
- RGB と DIN99d カラースペースでのカラーピッキングが可能
- アニメーションも含めて、任意のカラー モードでアルファ透明度をサポート
- ほとんどの最新・古典的端末およびエミュレータに対応
- ドキュメント化された安定した C API を提供
- SIMD 最適化、多スレッドで高速&軽量
- ターミナルグラフィックス、ANSI アート作成、さらには白黒印刷にも最適
以下のブログシリーズで詳細を解説しています:
- Introducing Chafa
- The worst ANSI art renderer, except for all the others
- Chafa 1.2.0: Faster than ever, now with 75% more grit
- Chafa 1.4.0: Now with sixels
- Chafa 1.6.0: Wider
- Chafa 1.8: Terminal graphics with a side of everything
- Chafa 1.14: All‑singing, all‑dancing
ドキュメント
を引数なし(またはchafa
)で実行するとヘルプテキストが表示されます。--help- マニュアルページは
から閲覧可能です。man chafa - ギャラリーではコマンドラインオプションによる出力調整例を確認できます。
- アプリケーション開発者向けに C API のドキュメントも提供しています。
Python バインディングは Erica Ferrua Edwardsdóttir が開発中で、専用サイトにてドキュメント化されています。
JavaScript バインディングは Héctor Molinero Fernández がメンテナンスしており、Node.js や Web ブラウザ等で利用可能です。こちらも別途ドキュメントがあります。
コミュニティ
質問は当社のビジネスフレンドリーな Matrix チャットにて受け付けています。
端末やソフトウェア、好きな朝食シリアルについて語り合う時間をお楽しみください。
皆さんが端末・プログラミング・コンピュータグラフィックスに関心を持っていると、さらに充実した体験が得られます。
チャットの履歴は非メンバーからは隠蔽されていますが、公衆フォーラムとして公開されています。
政府や巨大企業を倒すための地下ネットワーク(リファービッシュド・ミニテレ)を企画している方は、プライベートにお話しください。
私たちは全ての人々を尊重しますので、どうぞ楽しんでください!