珍しく趣味で書き始めたやつがそれなりにそれっぽいものになったので公開してみる。

パートカラーってのは、モノクロ写真なんだけど一部分だけ色がついてるやつ。和製英語っぽい気はする。英語だとselective colorで検索するとそれっぽい画像が出てくるから多分これなのかな。あれを例えば赤だけ残してとか指定したら自動で作ってくれるようなのが、デジカメのフィルタとかには入ってたりするんだけど、あれどうやってやってんだろと思って試しに作ってみた。

こういう元画像があったりして、

かくれんぼ

これに対して「色相0度を基準に60度の範囲の色を残してあとは彩度0にする(パートカラー赤)」ってのをやってあげると、

lory-out

こんな感じになる。実用性があるかどうかはともかく意外とそれっぽくなった。

とりあえずライブラリとツールっぽい何かが出来たのでGitHubに置いてある。

faultier/lory

できることは、

  1. alpha, red, green, blueからなる色構造体と基準になる色相を渡してやると、色相を判別して残すか彩度0にするかする
  2. jpeglibを使うのを想定して、RGBRGB...の順に並んでるuint8_tの配列を渡してやると、それ全体に対して1の処理をする
  3. Android NDKで使うのを想定して、uint32_tの配列と幅、高さ、ストライドを渡してやると、それ全体に対して1の処理をする

みたいな感じ。一応Android用のstatic library作るとこまではやったのでせっかくだしアプリ作ってみるかなーとか思ってるんだけどいつになるやら。あとはまぁjpegだけじゃなくて色んなフォーマットで試してみるかーとか高速化とか考えたらどうなるかなーとかでしばらくは遊べそう。

これ作ってるときにサンプル画像にインコの画像(あいつら体色がカラフルなのでこういう時に便利)を使ってたので、なんか良い名前ないかなー、あ、こういう小さいインコはLoryとLorikeetっていうのか、じゃあそれで、ってプロジェクト名にしたら、ツールの名前がloryconvに、loryconvによって出力される画像のデフォルト名がlory-out.jpgになってなんかこう、あれだ、おまわりさんこの人です的な語感になってしまったんだけど全然そんなつもりはなかったんです。ほんとなんです。