読者です 読者をやめる 読者になる 読者になる

画像を携帯電話の画面サイズにあわせて表示する

Rails Ruby

まず、jpmobileプラグインを入れておきます。

./script/plugin install svn://rubyforge.org/var/svn/jpmobile/trunk/jpmobile

また、サイズの変更をrmagickで行いますので、
gemでrmagickをいれておきます。
sargeでは

apt-get install libmagick6-dev

が必要でした。それで

gem install rmagick

でした。
上の続きとなりますが、

require 'RMagick'
class BbsController < ApplicationController
  def show_photo
    @photo=Photo.find(params[:id])
    imgs=Magick::ImageList.new
    imgs.from_blob(@photo.data)
    if request.mobile.display
      career_x=request.mobile.display.width
      career_y=request.mobile.display.height
      if imgs[0].columns>career_x
        resize_x=career_x
        resize_y=career_x*imgs[0].rows/imgs[0].columns
        if resize_y>career_y
          resize_x=career_y*imgs[0].columns/imgs[0].rows
          resize_y=career_y
        end
        imgs[0].resize!(resize_x,resize_y)
      end
    end
    send_data(imgs.to_blob,:type=>@photo.mimetype,:disposition=>"inline")
  end
end

これで、携帯電話のサイズにあわせて自動的にリサイズされます。
ちなみに携帯電話は以外は何もしません。そのまま表示です。
※ 携帯じゃない場合もRMagickに突っ込んでいるので、ちょっと効率が悪いですね。後で直します。