この記事は
Go Advent Calendar 11日目の記事です。
大遅刻でした。すみません。
目次
- 経緯
- glitchとは
- 良いライブラリがあったので紹介
経緯
goってbyteの制御とかも結構簡単だし、imageライブラリ周りの処理とかあんまり書いたこと無いし、glitchやってみたら楽しいかなと思って実装していたところ、
参考になるサンプル探してたら使えるライブラリ見つけちゃって、もうこれで良いんじゃないかと思った話です。
glitchとは
端的に言うと、画像を意図的に壊して面白い効果を狙うものです。
http://www.osadagenki.com/gvgas/ja/about-glitch-art/
http://makimoto.hatenablog.com/entry/rubykaigi2013
この辺が文献としては詳しく、
https://speakerdeck.com/makimoto/the-pragmatic-glitch-number-rubykaigi-2013-lt
このスライドが知らない方にはめっちゃわかりやすい。
Goでglitchできるライブラリの紹介
github.com/makimoto/glitch/
上記で紹介したスライドの、makimotoさんが作られたglitchライブラリ。
imageライブラリ使わずにbyte型で読みだして、ヘッダとフッタの指定分だけ取り除いて、処理した後またヘッダとフッタを戻すような処理をやってます。
データベンディング的なグリッチで、コントロールできないですが、とってもいい感じに壊れます。
github.com/darkliquid/glitch
http://www.airtightinteractive.com/demos/js/imageglitcher/
このJSで書かれたglitchアルゴリズムのgolangによる再実装。
データベンディングというよりは画像処理ベースで実現していて、ループして色変えて貼り付け、みたいなことを繰り返してます。
学び
- 探せばやりたいことできるライブラリがあるので、探して中身見てみると楽しい
- golangはgithub上でエコシステムができているので、github上で検索するだけでもサンプルコード見つけられるし学びがある
- 時間があるときに、image型でインポートした後、中身をbyteで処理して、image型として戻す、上記のライブラリの中間くらいの処理を作りたい