2025/04/12(土) [n年前の日記]
#1 [prog] 画像を圧縮する方法について悩んでる
8x8ドット単位のセルを並べてある画像を圧縮展開できないかちょっと悩んでる。MZ-700の画像っぽい感じで扱えないものか。
いや、タイルマップとして扱ってしまえばいいのだろうけど…。元画像の作成や修正が簡単なほうが望ましいよなと…。できれば、Windows + MinGW、C言語/C++で処理したい。
いっそ元画像をsvgファイルとして作成してしまうのはどうか。そのためにはsvgを解析してビットマップ画像に変換する、C言語/C++のライブラリが必要になるなと…。
Google gemini 2.0 に尋ねてみたら、Cairo や Libsvgtiny というライブラリを提示された。これって MinGW で使えるのだろうか…?
考えてみたら、ドット絵を8倍に拡大してしまってもなんとかなるだろうか。斜め線相当のセルが置かれている場所だけ特別扱いで記憶しておけば…。いや、いっそピクセルアート用の拡大アルゴリズム、xbrやhqx等のアルゴリズムでドット絵を拡大してしまうのもアリだろうか…。
でも、そこまでシンプルな画像なら、単にpngで圧縮するだけでも容量が減ってくれそう。
色々な方法を思いついてしまう。どれを使えばいいのやら…。
いや、タイルマップとして扱ってしまえばいいのだろうけど…。元画像の作成や修正が簡単なほうが望ましいよなと…。できれば、Windows + MinGW、C言語/C++で処理したい。
いっそ元画像をsvgファイルとして作成してしまうのはどうか。そのためにはsvgを解析してビットマップ画像に変換する、C言語/C++のライブラリが必要になるなと…。
Google gemini 2.0 に尋ねてみたら、Cairo や Libsvgtiny というライブラリを提示された。これって MinGW で使えるのだろうか…?
考えてみたら、ドット絵を8倍に拡大してしまってもなんとかなるだろうか。斜め線相当のセルが置かれている場所だけ特別扱いで記憶しておけば…。いや、いっそピクセルアート用の拡大アルゴリズム、xbrやhqx等のアルゴリズムでドット絵を拡大してしまうのもアリだろうか…。
でも、そこまでシンプルな画像なら、単にpngで圧縮するだけでも容量が減ってくれそう。
色々な方法を思いついてしまう。どれを使えばいいのやら…。
[ ツッコむ ]
以上です。