Golangで画像をglitchできるライブラリの紹介

  • 10
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

この記事は

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/

https://github.com/makimoto/glitch/

上記で紹介したスライドの、makimotoさんが作られたglitchライブラリ。
imageライブラリ使わずにbyte型で読みだして、ヘッダとフッタの指定分だけ取り除いて、処理した後またヘッダとフッタを戻すような処理をやってます。
データベンディング的なグリッチで、コントロールできないですが、とってもいい感じに壊れます。

github.com/darkliquid/glitch

https://github.com/darkliquid/glitch

http://www.airtightinteractive.com/demos/js/imageglitcher/
このJSで書かれたglitchアルゴリズムのgolangによる再実装。
データベンディングというよりは画像処理ベースで実現していて、ループして色変えて貼り付け、みたいなことを繰り返してます。

学び

  • 探せばやりたいことできるライブラリがあるので、探して中身見てみると楽しい
  • golangはgithub上でエコシステムができているので、github上で検索するだけでもサンプルコード見つけられるし学びがある
  • 時間があるときに、image型でインポートした後、中身をbyteで処理して、image型として戻す、上記のライブラリの中間くらいの処理を作りたい