コード画像ジェネレーター
画像処理はすべてブラウザ内で完結します。データは送信されません
コードをきれいな PNG に描画します。選んだ言語のシンタックスハイライト、ダーク/ライト/ハイコントラストの 3 テーマ、行番号、余白、角丸に対応し、赤黄緑の丸が付いたウィンドウのタイトルバーも足せます。 着色は当サイトのハイライターを再利用しています。 言語と、どの語を着色するかは 1 か所(lib/highlight.ts)にしかありません。だから同じコードはここでも「コードハイライト」ツールでも同じ配色になり、キーワード表が二重管理されて少しずつずれる、ということが起きません。 等幅フォントと日本語の幅。 フォントは ui-monospace, SFMono-Regular, Menlo, monospace の順に、実際に存在するものへ落とします。幅は1 文字ずつ測ります。日本語の 1 文字は欧文 2 文字分の幅を持ち、文字列をまとめて測ると日本語コメントが混ざったときにずれるため、区間ごとの前進は文字幅の合計で行います。 コード欄は 1 行の入力欄です。 これは当サイトの画像シェルが使う標準フォーム部品の形で、1 行ずつ描画します。貼り付け時の改行はブラウザーが取り除きます。1 行のコード、式、短く圧縮したコードに向いています。
機能
- シンタックスハイライト:JavaScript・TypeScript・Python・Go・Rust・SQL・Bash・JSON・プレーンテキスト
- 着色はサイト内のハイライターを再利用。「コードハイライト」ツールと規則が一致
- 3 テーマ:ダーク・ライト・ハイコントラスト
- 行番号の表示、文字サイズ・余白・角丸の調整ができます
- ウィンドウのタイトルバーを追加可能(赤黄緑の丸と任意のタイトル)
- 等幅の幅は 1 文字ずつ計測。日本語コメントがずれません
- PNG を出力し、カードに寸法と容量を表示
- すべてブラウザー内で描画。コードはアップロードされません
使い方
- 「コード」欄に描画したいコードを入れます
- 言語とテーマを選び、文字サイズ・行番号・余白・角丸を調整します
- 必要ならタイトルバーを有効にしてタイトルを入力します
- PNG をダウンロードします
よくある質問
- 複数行のコードに対応していますか?
- 描画側は複数行に対応しています(行番号も行の高さも行単位で計算します)が、コード欄は現在1 行の入力欄です。これは当サイトの画像ツールシェルの部品の形で、標準の 1 行テキスト部品は貼り付け時に改行を取り除くため、実際には 1 行ずつになります。1 行のコード、式、短く圧縮したコードに向いています。まとまった複数行が必要なときは、いまは別の方法で描画するか、複数回に分けてください。
- 着色の規則は「コードハイライト」ツールと同じですか?
- 同じ実装です。着色はサイト内の lib/highlight.ts を再利用しており、言語表・キーワード表・各区間の分類は 1 か所にしかありません。ここで追加しているのは、その分類結果を canvas に描くことだけです(canvas に innerHTML は無く、HTML をそのまま描けません)。クラス名から色への対応は描画にだけ必要なものです。だからここでの配色は「コードハイライト」ツールと一致し、規則が二重になることはありません。
- なぜ幅を 1 文字ずつ測るのですか?
- 等幅フォントでは日本語の 1 文字が欧文 2 文字分だからです。行全体をまとめて測ると、フォントエンジンが合成する幅が「欧文は半分・日本語は全角」という実際の占有と数ピクセルずれることがあり、行番号の列とコードがずれます。1 文字ずつ測れば幅が予測でき、テストで固定できるので、日本語コメントとコードも揃います。
- 背景は透明にできますか?
- 現在の出力はベタ背景です(テーマごとの背景色)。角丸の外側の四隅は透明なので、暗い背景や明るい背景に置いても角丸に白い縁が出ません。別の背景色が必要なときは、いちばん近いテーマを選ぶか、ダウンロード後に画像ツールで背景色を置き換えてください。
関連ツール
コード着色
Webコードに色を付け、選択コピーで色ごとスライドや Word に貼れます。インラインスタイルの HTML を出力してブログに貼ることも可能。26 言語に対応。
画像 Base64 変換
Web画像を Base64 / Data URL に変換。ドラッグ・選択・貼り付けに対応し、長辺での縮小と PNG/JPEG/WebP への変換ができます。ブラウザ内で処理し、送信しません。
画像情報
画像画像に含まれる情報をすべて表示します。形式の詳細、撮影設定、撮影場所。GPS は別枠で警告し、テキストまたは JSON で出力できます。
画像形式変換
画像PNG・JPEG・WebP・AVIF・BMP・TIFF の間で画像を変換します。品質と長辺の上限を指定でき、JPEG へ変換する際は背景色を先に塗るため透明部分が黒くなりません。
画像分割
画像画像をグリッドで複数枚に切り分けます。3×3 など 6 種類のグリッド、マスごとの余白、通し番号付きのファイル名で、順番どおりに投稿できます。
画像に透かし
画像画像に文字の透かしを入れます。9 か所の位置とタイル配置に対応し、文字サイズは画像の比率で自動調整。色と不透明度も変更できます。