Edited at
Go4Day 21

goのimagemagickを使ってレンチキュラー写真を作った

More than 1 year has passed since last update.

どうもGo超初心者です。

TourOfGoを最近完了し、何か他のネタでさらに勉強しようとしましたが

これとかだと仕事!って感じがして個人的にあんまり机へ向かう気が出てこなかったので

どうせなら、物理的なものと絡ませたらやる気出るのでは?という思いのもと、

レンチキュラー画像を作ってみることにしました。


レンチキュラーとは


レンチキュラー(lenticular)とは、シート状のレンチキュラーレンズを用いて、見る角度によって絵柄が変化したり、立体感が得られたりする印刷物のことである。数cm角の小型のものから、建物の壁面に取り付けられている広告板などの大型のものまである。裸眼式の3次元ディスプレイにも用いられる。


https://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%B3%E3%83%81%E3%82%AD%E3%83%A5%E3%83%A9%E3%83%BC

こういうやつです。

https://www.youtube.com/watch?v=eqEoSpIldJ0

これを実現するには↓が必要です。

* レンチキュラーレンズ

* レンチキュラー用に加工された画像(紙)

レンチキュラーレンズという特殊なレンズを、それ用に加工された紙に貼るという感じです。


準備

imagemagick諸々を入れるのでミドル,goプラグイン両方とも対応。


imagemagick

$ brew install imagemagick


glide


glide.yaml

package: lenticular

import:
- package: gopkg.in/gographics/imagick.v3/imagick/types
version: ^3.1.1
subpackages:
- imagick

$ glide install


レンチキュラーレンズ

色々サイトを覗いた結果、一番手頃だったのでここだったので購入(1週間くらいで到着しました)

レンチ屋さんお試しセット

ネットで買う前に文具店やハンズで探してみましたがありませんでした。物理店舗では無いのかな


ソースコード

https://github.com/junpayment/lenticular


実行

今回はこちらの画像でgopherくんとリアルgopherくんが切り替わるやつを作ろうと思います。

gopher.png

gopher_real.png

# 50lpi, 300ppiを指定

$ go run main.go gopher.png gopher_real.png gopher_out.jpg 50 300


結果

なんだかそれっぽい画像に....!


レンズをはめてみた


原因

おそらくレンズを写真に貼るときに斜めにずれた為だと思います。

リアルgopherくんは、シマシマながらちゃんと映ってたので、写真生成自体までは間違ってない(はず)

今度頑張ろう。

以上です。