2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

windowsのメモ帳でカラー画像を表示してみた!

Last updated at Posted at 2025-12-10

はじめに

notepad.exeにカラー画像や動画を表示することができるツールを作りました。

DEMO

windowsXPのデスクトップ壁紙
windowsxp.png

notepad.exeのアイコン
notepad_icon.png

BadApple!!.mp4
badapple_np.png

フル動画はこちら

仕様

リポジトリ

仕様

色数:41色(後に解説)
解像度:最大横1000px × 制限なし
カラー表示はnotepad.exeのみ
使い方はreadmeを御覧ください

きっかけ

濃淡でASCIIアートに変換するツールで遊んでいたとき、出力結果をNotepad.exeに表示してみました。
そのとき、面白半分で横幅を最大に設定すると、ウィンドウに収まらなくなりました。
そこで表示を10%にすると、なぜか変に色がついてることを発見しました。

animation.gif
工夫したらNotepad.exeでカラー画像が表示できるのではと思いついきました。

考察

メモ帳の設定は

フォント:MSゴシック
スタイル:標準
文字サイズ:12pt

この設定を基準として扱います。

文字列>>>を横に並べてサイズを比較しました
np_render.png

  • アンチエイリアスによって色がついている
  • 一文字が縦2ドット横1ドットになっている
  • 上半分の色と下半分の色が違う
  • フォントを変えると、表示が崩れてしまったり、色が変わることがある
  • 複数連続した文字にすると色を再現できる
  • 一文字だけだと別の色になり、再現できなかった

ということがわかりました。
今回はフォントをMSゴシックに固定し、上と下のドットの平均値をこの文字の色として扱うようにしました。

画像表示

使う文字は、

  • 半角数字
  • 小文字アルファベット
  • 大文字アルファベット
  • 記号
    の中から重複を考慮し、総数41種類の文字を使いました。
    つまり、41色使うことができます。
    (以下、これらの文字と色を結びつけたデータセットを文字パレットと表記します)

固定パレット量子化を使い色を決め、対応する文字を出力するようにしました。

どの文字がどの色に対応しているかはこちらをご覧ください
https://github.com/pIIton345/notepad_rendering/blob/main/src/colorpalette.txt

暗い画像が見えない

文字パレットは明るい色に偏りがあり、赤黄緑青などの多色が揃っていますが、暗い色は、グレーや真っ黒ぐらいなので、色の自由が効きません。

対処法としては、画像を加工して、明るさを上げてから処理をする方法で解決しました。

動画表示

画像表示ができたから動画表示もしたい!
画像表示用のコードから転用して、動画に対応させました。

しかしnotepad.exeにはテキストファイルを更新する機能はありません。
vscodenotepad++などはテキストファイルを更新する機能がありますので再生はできました。

Notepad.exeに更新する機能をつける

GIGAZINEの記事使えそうな技術を使ってる記事がありました。

chatGPTに技術を推測させたところ、windowsAPIを使って高速でメモ帳の表示を書き換えているとのことだったのでこれを再現したものを作ってもらいました。

これによりNotepad.exeで動画を再生することができました。

おわりに

テキストエディタであるNotepad.exeが制限ありの画像ビューアーに化けました。
もし興味がありましたらこのツールを遊んでほしいです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?