Groovyでグリッチ
さてさて。また先日都会と田舎の珍幹線でさくっと書いたものをば。いわゆるGrocessingじゃなくて、生のGroovyでjpegをグリッチさせてみました。シェルだったらcatとか使えばもっと短かく書けるんだけど、いわゆる入出力ストリームの勉強がてらやってみたかんじです。
ホントは郵便局とかで出してる年賀状をスキャンしてグリッチさせて年賀状として出そうと思ってたんですが、いつものごとく時間もなく…
ちなみに次回JGGUGのワークショップ(?)では新春LT大会とのことで、「G*なものだったら、なんでもOK」というルールらしく、はじめ「Groovyで書いちゃえばGlitchもG*だしG*に入りますか?」と小学生が「バナナはおやつに…」的なかんじでと思ったのですが、じぶんはいちおう社会人なので場をわきまえて「それはねーよ」と心の中でじぶんを諭したわけです。つかこの21世紀の世でも小学生は「バナナはおやつに…」的なことはいうのでしょうか。
もつのろん、G*なLTに参加させていただく所存です。ほうれんそうの根っこぐらいアク強いのやろうと思います。
NEXTだってグリッチさせるよ。
というわけでソースです。
new File("glitched_"+args[0]).withOutputStream{ r={Math.round(Math.random()*10)} it.write((new File(args[0]).readBytes()).collect{("${it}"=="9"&&r()%2==0)?Byte.parseByte("${r()}"):it}as Byte[])}
こんなかんじでできますよ。
> groovy glitch.groovy next.jpg
以上小ネタでした。