モノコセル

モノコセル

「こせる」とは千葉の方言で「作る」の意味。
今を越せる残せるモノをこせる。

1 分で読めます

この投稿は 旧ブログ stnoctps-blog Tumblr 出張所 から引っ越してきました。

Carrierwave 標準だと、resize_ 系が固定サイズしか指定できなかったので、倍率指定して拡大縮小できるようにしてみた。

動作確認環境

Ruby 1.9.3-p327

Ruby on Rails 3.2.9

carrierwave (0.7.1)

rmagick (2.13.1)

/lib/carrierwave/dynamic_resize.rb

module CarrierWave

  module DynamicResize

    module ClassMethods

      def resize_to_power(power)
        process :resize_to_power => power
      end

    end

    def resize_to_power(power)
      if @file
        img = ::Magick::Image::read(@file.file).first
        if model
          @img_width = img.columns
          @img_height = img.rows
          @resize_width = @img_width * power
          @resize_height = @img_height * power
          resize_to_fill(@resize_width, @resize_height)
        end
      end
    end

  end

end

/app/uploaders/hoge_uploader.rb

class HogeUploader < CarrierWave::Uploader::Base

  :

  include CarrierWave::DynamicResize

  :

  version :half do
    process :resize_to_power => 0.5
  end
  :

  version :quarter do
    process :resize_to_power => 0.25
  end
end

/config/initilaizers/carrierwave.rb

  :

require File.join(Rails.root, lib, carrierwave, dynamic_resize)

最近の投稿

続きを見る

カテゴリー

タグ

About

フリーランスのシステムエンジニア。受託開発ソフトウェア業の中小企業での 18 年間の勤務を経て、2019 年よりフリーランス。新技術を習得するのが得意。千葉県在住。