横64マスなら4:3の写真は64 × 48マス: マスごとに平均色を出し、パレットの最も近い色で塗ります
画像のドット化は、写真を横と縦のマスに分け、1マスを1色で塗ってピクセルアートのように仕上げる作業です。上のツールは、横のマス数を決めると縦のマス数を元画像の比率に合わせて決め(640 × 480 px の写真を横64マスに分けると縦は48マス)、マスに入るピクセルの平均色を求めてから、選んだパレットで最も近い色に置き換えます。
絵を左右にドラッグすると、同じ位置で元画像とドット変換の結果を重ねて比べられます。下の「色ごとのマス数」では、色ごとに何マス塗ったかが分かります。保存するときは1マスを4倍・8倍・16倍のような整数倍に拡大して PNG にするため、境界がぼやけません。画像の処理はブラウザの中だけで行い、サーバーには送信しません。
写真をドットにする場面
- プロフィール画像やスタンプを作るとき: 横32〜64マスなら、顔の輪郭が見分けられる程度に残ります。小さなアイコンにするほど、マス数を減らし、色数を8色前後まで絞ると、くっきり見えます。
- ゲームのスプライトやタイルの下絵が欲しいとき: 背景を消した透過 PNG を入れて輪郭線をオンにすると、手で整える前の下書きになります。PICO-8 のような決まったパレットに合わせて試すこともできます。
- ビーズやクロスステッチの図案を作るとき: 1マスがビーズ1粒、または1目にあたります。格子をオンにすると10マスごとに濃い線が入って数えやすくなり、「色ごとのマス数」がそのまま色ごとに必要な個数です。
- レトロな雰囲気のサムネイルやポスターが欲しいとき: ゲームボーイの緑4段階や白黒2色にディザリングを加えると、昔の画面のように見えます。
ドットに変える手順
- マスに分ける: 横のマス数を w とすると、縦のマス数は w × 元の縦 ÷ 元の横を四捨五入した値です。1マスに入るピクセルの範囲は、元の幅を w で割った境界で決めます。
- マスの平均色: マス内のピクセルの赤・緑・青を、不透明度で重みづけして平均します。不透明度の平均が半分以上ならその平均色に、半分未満なら透明なマスにします。
- パレットを決める: 「自動」は、マスの色を最も広がった色チャンネルの中央値で繰り返し二分する median cut(Heckbert, 1982)で色数ぶんのグループにまとめ、グループの平均を4回調整してパレットを作ります。PICO-8・CGA・ゲームボーイ・白黒は固定の色を使います。
- 最も近い色を選ぶ: マスの色とパレットの色の差を、人の目に見える明るさや色の差に近づけた OKLab 色空間(Ottosson, 2020)での距離で測り、最も近い色で塗ります。ディザリングをオンにすると、この段階で色を混ぜます。
- 拡大して保存する: 1マスを n × n ピクセルにそのまま拡大します(周囲の色を混ぜる補間は使いません)。64 × 48マスを8倍で保存すると、512 × 384 px の PNG になります。
| マス内の4ピクセル (2 × 2) | 不透明度の平均 | マスの結果 |
|---|---|---|
| 赤 (255, 0, 0) 2個 + 青 (0, 0, 255) 2個 | 100% | (128, 0, 128) 紫 |
| 赤1個 + 青1個 + 透明2個 | 50% | (128, 0, 128)、半分なので不透明 |
| 赤1個 + 透明3個 | 25% | 透明なマス |
透明なピクセルは色の平均に入らないため、2行目も紫になります。この紫 (128, 0, 128) を PICO-8 のパレットで塗ると、OKLab の距離で最も近い #7E2553(暗い紫)になります。
マス数の選び方: 4:3の写真の場合
横のマス数が決まると、縦のマス数と保存サイズも決まります。下の表は、640 × 480 px のように縦横比が4:3の写真の値です。
| 横のマス数 | 縦のマス数 | 全マス数 | 8倍の保存サイズ | 見た目 |
|---|---|---|---|---|
| 16 | 12 | 192 | 128 × 96 px | アイコン、形だけが残る |
| 32 | 24 | 768 | 256 × 192 px | スタンプ、顔の輪郭 |
| 64 | 48 | 3,072 | 512 × 384 px | プロフィール、人物や物が見分けられる |
| 128 | 96 | 12,288 | 1,024 × 768 px | 風景、細部が残る |
| 256 | 192 | 49,152 | 2,048 × 1,536 px | 写真に近い |
参考までに、初期のゲームボーイの画面は 160 × 144 ピクセル(Pan Docs)、PICO-8 の画面は 128 × 128 ピクセル(PICO-8 マニュアル)です。その画面いっぱいに収まる絵なら、横128〜160マスが目安になります。
パレット6種類
| パレット | 色数 | 色の決まり方 | 向いている絵 |
|---|---|---|---|
| 自動 | 2〜64 (初期値 16) | 画像のマスの色から median cut で選んで調整 | 写真、元の雰囲気を残したいとき |
| 元の色 | 減らさない | マスの平均色そのまま | モザイク、マス数だけを減らしたいとき |
| PICO-8 | 16 | Lexaloffle のファンタジーコンソール PICO-8 の固定色 | 明るくはっきりしたゲーム風の絵 |
| CGA | 16 | 1981年の IBM CGA の RGBI 16色(6番は #AA5500 の茶色) | DOS 時代の PC 画面の雰囲気 |
| ゲームボーイ | 4 | 緑の4段階、BGB エミュレーターの初期値 | 携帯ゲーム機の雰囲気 |
| 白黒 | 2 | #000000、#FFFFFF | ディザリングと組み合わせて版画や新聞の雰囲気 |
固定パレットは、画像にない色を使いません。サンプル画像を PICO-8 に変えると、16色のうち実際にマスへ塗られた色だけが「色ごとのマス数」に出ます。初期のゲームボーイは緑4段階を表示する画面ですが、公式の RGB 値が別にないため、エミュレーターごとに色が少しずつ異なります。NES(ファミコン)は、画面の色が TV や映像回路によって変わり、ひとつに決まった RGB パレットがないため(NESdev Wiki)、入れていません。
PICO-8 とゲームボーイのパレット値、ゲームボーイと PICO-8 の画面サイズ、ディザリングの重みは、上の出典の原文で 2026-10-12 に確認しました。これらは毎年変わる制度の値ではありません。
ディザリング: 点を混ぜて中間色を作る
色数が少ないと、空や肌のようになめらかに変わる部分が、いくつかの塊に分かれてしまいます。ディザリングは、近い2色を点の単位で混ぜ、離れて見るとその間の色に見えるようにする方法です。
| 方式 | しくみ | 向いている絵 |
|---|---|---|
| なし | マスごとに最も近い色1色 | 面が単純な絵、アイコン |
| 格子状 | 4 × 4 の Bayer 行列(Bayer, 1973)でマスの色を少しずつずらし、規則的なパターンで混ぜる | レトロゲーム風の画面、白黒や4色 |
| 誤差拡散 | 塗り分けで残った色の差を、右へ 7/16、左下へ 3/16、下へ 5/16、右下へ 1/16 の割合で送る(Floyd–Steinberg, 1976) | 写真、グラデーションの多い絵 |
マス数が少ないときにディザリングを使うと、点が粗く見えることがあります。横32マス以下では「なし」、64マス以上の写真では「誤差拡散」から比べてみると選びやすくなります。「元の色」は色数を減らさないため、ディザリングは必要ありません。
よくある間違い
- 小さく保存してから別のソフトで拡大する: 多くの画像ソフトは拡大するときに周囲の色を混ぜるため、境界がぼやけます。最初から8倍や16倍のような必要なサイズで保存します。
- PNG を JPG で保存し直す: JPG の圧縮は、マスの境界の周りにノイズを作り、透明なマスも塗りつぶします。ドット絵は PNG のままにします。
- 元画像よりマスを増やす: 横300 px の画像を512マスに分けても、マスが元のピクセルより多くなるだけで、細かくはなりません。この場合は、ツールがマス数の下に知らせます。
- 色数を減らしながらディザリングをオフにする: 4〜8色で顔や空を塗ると、縞が出ます。色を16色以上に増やすか、誤差拡散をオンにします。
- 複雑な背景をそのままにする: マス数が少ないと、背景と人物が混ざります。背景を消した透過 PNG を入れると、透明なマスはそのまま空け、輪郭線をオンにしたときは人物のまわりに線が入ります。
- SNS に載せても元のサイズのままだと思う: サービスによっては、アップロードした画像を縮小したり、再圧縮したりします。マスがつぶれたら、保存倍率を変えてもう一度アップロードしてみます。
限界と注意
- 計算はブラウザの中だけで行います。マスの平均を出すときは、元画像を長辺 1,024 px 以下に縮小してから読み込み、横512マスまでは結果にほとんど差が出ません。
- 横は8〜512マス、縦は1,024マスまでです。保存は、1辺 4,096 px、面積 4,096 × 4,096 px までしか選べません。iOS 端末のブラウザでは、キャンバスの上限が 4,096 × 4,096 だからです(MDN)。
- ブラウザが開ける形式だけを受け付けます。動く GIF は最初の場面だけを使い、HEIC のようにブラウザによっては開けない形式は、JPG・PNG に変換して入れる必要があります。ファイルは 40MB まで受け付けます。
- 自動パレットは、同じ画像・同じ設定なら常に同じ結果になりますが、人が選んだ色の組み合わせより優れているとは限りません。色が気に入らなければ、色数を変えて比べます。
- 輪郭線は、隣のマスより十分に暗いマスと、透明なマスの隣のマスを線の色に変える簡易的な方式なので、必要な線だけを選んで描くことはできません。
- ゲームボーイや CGA のような昔の機器の色だけを再現します。タイルやスプライトごとに使える色数のようなハードウェアの制約は反映しません。
出典
- 01Lexaloffle — PICO-8 User Manual画面 128 × 128、固定16色パレット(色番号 0〜15) — 2026-10-12 確認
- 02Lospec — PICO-8 PalettePICO-8 の16色の HEX 値(Lexaloffle Games)。ゲームボーイの4色は、同じサイトの Nintendo Gameboy (BGB) Palette の値を使用
- 03Pan Docs — Specifications初期のゲームボーイ(DMG)の画面 160 × 144、緑の4段階
- 04NESdev Wiki — PPU palettesコンポジット映像出力には、すべてのゲームに合う単一のパレットがない。パレット項目は64色のうち1色を指す
- 05Heckbert, P. (1982). Color image quantization for frame buffer displayACM SIGGRAPH Computer Graphics 16(3), 297–307. median cut による減色
- 06Björn Ottosson — A perceptual color space for image processing2020-12-23. OKLab 変換(線形 sRGB → LMS → 立方根 → Lab)
- 07Wikipedia — Floyd–Steinberg ditheringFloyd & Steinberg (1976), An adaptive algorithm for spatial grey scale, Proceedings of the SID 17: 75–77. 誤差の重み 7·3·5·1/16. 同サイトの Ordered dithering(Bayer, 1973, IEEE ICC)
- 08Wikipedia — Color Graphics AdapterIBM CGA(1981)の RGBI 16色、6番は茶色 #AA5500
- 09MDN — <canvas>: Maximum canvas sizeiOS 端末は 4,096 × 4,096 が上限で、超えるとキャンバスを使えない
よくある質問
写真をドット絵に変えるには、マス数をいくつにすればよいですか?
用途によって異なります。アイコンは横16〜32マス、プロフィール画像やスタンプは32〜64マス、風景は128マス前後がよく使われます。4:3の写真を横64マスに分けると縦は48マス、合計3,072マスになります。マス数のチップを切り替えながら、下のパレット別プレビューとあわせて比べると選びやすくなります。
色数は何色がよいですか?
写真は16色前後なら元の雰囲気が残り、8色以下に減らすと単純な絵柄になります。顔や空のようになめらかに変わる部分に縞が出たら、色を増やすか、ディザリング(誤差拡散)をオンにします。マスの色が単純な画像では、選んだ色数より少ない色しか使われないことがあります。
ディザリングとは何ですか。いつオンにしますか?
ディザリングは、近い2色を点の単位で混ぜ、離れて見るとその間の色に見えるようにする方法です。格子状(Bayer 4 × 4)は規則的なパターンでレトロゲームの雰囲気を出し、誤差拡散(Floyd–Steinberg)は塗り分けで残った色の差を隣のマスへ送って、写真のグラデーションを自然に見せます。マス数が少ないアイコンでは、オフにしたほうがすっきりします。
保存した PNG がぼやけて見えるのはなぜですか?
このツールは1マスを整数倍にそのまま拡大して保存するので、ファイル自体はぼやけていません。小さい倍率で保存したあとに、別のソフトや SNS が画像を拡大したり再圧縮したりすると、周囲の色が混ざってぼやけます。最初から8倍や16倍のような必要なサイズで保存し、PNG のまま使います。
透明な背景はそのまま残りますか?
残ります。マス内のピクセルの不透明度の平均が半分未満なら透明なマスとして残し、PNG でも透明のまま保存します。半分以上なら、透明なピクセルを除いた残りのピクセルの平均色で塗ります。背景を消した画像で輪郭線をオンにすると、絵のまわりのマスが線の色に変わります。
アップロードした画像はサーバーに保存されますか?
保存されません。画像はブラウザの中で開いて計算し、サーバーには送信しません。ページを閉じるか別の画像を選ぶと消えます。保存した PNG は、自分の端末のダウンロードフォルダにだけできます。
ゲームボーイや PICO-8 のパレットの色は正確ですか?
PICO-8 は Lexaloffle が定めた固定16色をそのまま使います。初期のゲームボーイは緑4段階を表示する画面ですが、公式の RGB 値がないため、このツールは BGB エミュレーターの初期の4色を使っています。昔の機器の色の雰囲気を再現するだけで、タイルごとに使える色数のようなハードウェアの制約は反映しません。
HEIC の写真や動く GIF も変換できますか?
ブラウザが開ける形式だけ変換できます。HEIC を開けないブラウザでは、JPG か PNG に変換してから入れる必要があり、動く GIF は最初の場面だけをドットに変換します。ファイルは 40MB まで受け付け、計算するときは長辺を 1,024 px 以下に縮小して読み込みます。