LoginSignup
1
0

More than 5 years have passed since last update.

フレンズのトランプジェネレータをRailsで作ったよ

Last updated at Posted at 2017-10-25

はじまり

ちょと前に作ったジェネレータを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 なんていうものが出ているのは、画像素材のサイズの都合です。カード画像を拡大してからフレンズのアイコンを乗せないと大きさが合わないのです。

くふう

slack等に出せるようになりました。わーい
kemonotrump-rails-2.png

なぞ

  • Cloud9で開発してEC2のAmazon Linuxにもデプロイしてみたのですが、
    実行環境によって同じ画像ファイルなのに縦横のサイズが違ったりしました。

  • カード画像の画質が悪いです。svgを読み込んだ時点でラスターに変換されてしまい、それを拡大しているんだと思います。

RmagickとImageMagickは色々使い方が難しいところがありますね。
SVGであれこれするなら別のライブラリのほうがいいのかもしれません。
そのあたりは今後研究していきたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0