これは、すべてのディスプレイのコアグラフィックライブラリであり、グラフィックスプリミティブの一般的なセット(ポイント、ライン、円など)を提供します。私たちが運ぶディスプレイデバイスごとにハードウェア固有のライブラリとペアにする必要があります(低レベルの機能を処理するため)。
Adafruitは、このオープンソースコードを提供する時間とリソースを投資します。Adafruitから製品を購入して、AdafruitとOpen-Sourceハードウェアをサポートしてください。
Adafruit IndustriesのLimor Fried/Ladyadaによって書かれました。 BSDライセンス、詳細については、ライセンスを確認してください。上記のすべてのテキストは、再配布に含める必要があります。
最近のArduino IDEリリースには、簡単にインストールするためのライブラリマネージャーが含まれています。それ以外の場合は、ダウンロードするには、zipボタンのダウンロードをクリックし、非圧縮フォルダーadafruit_gfxの名前を変更して名前を変更します。 adafruit_gfxフォルダーにadafruit_gfx.cppとadafruit_gfx.hが含まれていることを確認します。 ADAFRUIT_GFXライブラリフォルダーをArduinosketchFolder/ライブラリ/フォルダーに配置します。最初のライブラリの場合、ライブラリサブフォルダーを作成する必要がある場合があります。 IDEを再起動します。
また、最新のAdafruit Busio Libraryをインストールする必要があります。図書館のマネージャーで「Adafruit Busio」を検索するか、https://github.com/adafruit/adafruit_busioから手作業でインストールする
Image2Code:これは、BMPファイルをDrawBitMap関数で画像を表示するために必要な配列コードに変換する便利なJava GUIユーティリティです。 Ehubin's Githubリポジトリのコードをご覧ください:https://github.com/ehubin/adafruit-gfx-library/master/img2code
drawxbitmap関数:GIMPフォトエディターを使用して.xbmファイルを保存し、ファイルに保存された配列を使用して、drawxbitmap関数を使用してビットマップを描画できます。詳細については、こちらのプルリクエストを参照してください:#31
'fonts'フォルダーには、最近(1.1以降)adafruit_gfxで使用するためのビットマップフォントが含まれています。 Arduinoスケッチでフォントを使用するには、#対応する.hファイルとgfxfont structのパスアドレスをsetfont()にインクルードします。 nullを渡して、「クラシック」の固定スペースビットマップフォントに戻ります。
「FontConvert」フォルダーには、TTFフォントをADAFRUIT_GFXヘッダー形式に変換するためのコマンドラインツールが含まれています。
また、このGFXフォントカスタマイザーツール( Webバージョンはこちら)を使用して、FontConvertの出力をカスタマイズまたは修正し、サイズを最適化するために文字のサブセットのみを備えたフォントを作成することもできます。
主要な指令は、既存のArduinoスケッチとの後方互換性を維持することです。多くは他の場所でホストされており、ここで変更を追跡せず、いくつかは印刷されていて、決して変更できません!この「小さな」ライブラリは時間の経過とともに有機的に成長しており、時にはデザインコーナーに自分自身を塗りつぶし、それと一緒に暮らすか、より不安定に回避策を追加しなければなりません。
みんなの貢献に感謝していますが、以下のリクエストをプルすることは統合されません。
追加または互換性のないフォント形式(上記のPrime Directiveを参照)。すでに2つの形式があり、コードはそのままそこに非常に肥大化しています。これにより、ツールとドキュメントの負債も作成されます。完璧ではありませんが、それは仕事をします。
同様の理由で、追加または互換性のないビットマップ形式。乱雑になっています。
カスタムフォントに背景色を追加して、以前の画面内容を消去します。唯一の許容可能な方法は、塗りつぶされた長方で領域をクリアするか、(フリッカーを避けるために)テキストをGFXCANVAS1に描画し、背景色付きDrawBitMap()で画面にコピーすることです。これは意図的で設計上です。これについて議論しました。グリフは重複する可能性があります。
ハードウェアベースであろうとソフトウェアベースであろうと、スクロール。このような実装は、ハードウェア固有の機能(普遍的に利用可能ではない)に依存し、画面のフレームバッファー(Ditto)へのアクセスを読み取り、および/またはGFXに仮想関数を追加して、それらをすべてのサブクラスに追加する必要があります。 GFX APIはこの時点でほぼ「設定」されており、これは私たちが現在住んでいる制限にすぎません。
コードを再フォーマットするためにコードを再フォーマットしないでください。結果として生じる大きな「視覚的違い」により、単に再配置された線から実際のバグ修正を解くことは不可能になります。 Clang-Formatが最終的なアービターになります。
もう五gram星を描くPRをお願いします。奇妙に固有の描画関数は、独自のコードに移動することができ、ライブラリのコンテキストでは役に立ちません。
これらの機能のいずれかが必要な場合は、プロジェクトに必要な機能を備えたフォークを作成することを検討してください。アップストリームコードと同期し続けるのは簡単です。