はじまり
ちょと前に作ったジェネレータをRailsに移植しました。
移植というよりは別言語での実装といった方がいいでしょうかね。
そーす
ここにあります。
実行方法も書いてありますのでローカルとかCloud9とかで実行できます。
環境によってはGemのインストールで詰まるかもしれませんが、がんばってください。
つかいかた
前回と同じです。
つくりかた
そざい
前回と同じです。
素材製作者の方々、ありがとうございます。
あーるまじっく
今回はついでにRailsの予習をするつもりだったのでRMagickを使ってみました。
require 'RMagick'
@@imagePath = 'app/resources/'
@@cardScale = 2.5;
card = Magick::Image.read(@@imagePath + 'card/' + cardId + '.svg').first
cardWidth = card.columns * @@cardScale
cardHeight = card.rows * @@cardScale
icon = Magick::Image.read(@@imagePath + 'icon/' + friendsId + '.jpg').first
iconWidth = icon.columns
iconHeight = icon.rows
iconOffsetX = (cardWidth - iconWidth) / 2;
iconOffsetY = (cardHeight - iconHeight) / 2;
card.resize!(@@cardScale)
card.composite!(icon, iconOffsetX, iconOffsetY, Magick::OverCompositeOp)
画像生成部分はこんなようなソースになります。
RMagickは今ひとつドキュメントがないのでこれでいいのか怪しいのですが。。
@@cardScale
なんていうものが出ているのは、画像素材のサイズの都合です。カード画像を拡大してからフレンズのアイコンを乗せないと大きさが合わないのです。
くふう
なぞ
Cloud9で開発してEC2のAmazon Linuxにもデプロイしてみたのですが、
実行環境によって同じ画像ファイルなのに縦横のサイズが違ったりしました。カード画像の画質が悪いです。svgを読み込んだ時点でラスターに変換されてしまい、それを拡大しているんだと思います。
RmagickとImageMagickは色々使い方が難しいところがありますね。
SVGであれこれするなら別のライブラリのほうがいいのかもしれません。
そのあたりは今後研究していきたいです。