Edited at
GoDay 11

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

More than 3 years have passed since last update.


この記事は

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型として戻す、上記のライブラリの中間くらいの処理を作りたい