2015-12-15 37 views
1

我正嘗試使用載波將圖像上載到博客。在博客上,無論照片的大小如何,我都希望所有圖片都能放在相同大小的框中。我希望他們都是450x253。這裏是我的代碼:爲載波使用minimagick和載波調整圖像大小

上傳文件:

class PhotoUploader < CarrierWave::Uploader::Base 


    include CarrierWave::MiniMagick 
    include Sprockets::Rails::Helper 
    storage :fog 

def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 

    process :resize_to_fill => [450, 253] 

    # Create different versions of files: 
    version :thumbnail do 
     process :resize_to_fill => [200, 112] 
    end 

    version :profile_size do 
     process :resize_to_fill => [450, 253] 
    end 

    version :full_size do 
    process :resize_to_fill => [568, 320] 
    end 

    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 

end 

而且我index.html.erb文件:

  <div class="row"> 
        <% @articles.each do |article| %> 
        <div class="col-md-6"> 
         <div class="well well-lg"> 
           <p><%= image_tag(article.image.url) %> 

            <div class="body"> 
             <div class="text-center"> 
              <%= article.description %> 
             </div> 
              <div class="row"> 
              <div class="col-xs-3"> 
               <button class="btn btn-primary btn-lg" type="submit">Button</button> 
              </div> 
              <div class="col-xs-9"> 
               <button class="btn btn-default btn-lg pull-right" type="submit">Button</button> 
              </div> 
             </div> 
             </div> 
           </div> 
          </div> 
         <% end %> 
        <div class="col-md-6 col-sm-6"> 
        </div> 
       </div> 

在這一行:

<%= image_tag(article.image.url) %> 

我也嘗試過:

<%= image_tag(article.image.profile_size.url) %> 

因爲我的上傳文件顯示profile_size應該呈現450x253,但仍然不起作用。隨着我當前的代碼,因爲它在頁面上顯示照片的大小僅僅是同樣大小的什麼,那就是我上傳的,它不調整可言,例如:

photo of my screenshot

我希望它們的大小與照片左側的大小相同,但是自動調整大小(照片中的大小自然就是這個大小),我該怎麼做?我已經嘗試過尋找這裏:http://www.rubydoc.info/github/jnicklas/carrierwave/CarrierWave/MiniMagick

這裏:Carrierwave - Resizing images to fixed width

感謝

回答

2

使用resize_to_fit或resize_to_limit代替resize_to_fill

process :resize_to_limit => [450, 253] 

process :resize_to_fit => [450, 253] 
+0

resize_to_fit的工作,但你答案仍然說secon中的resize_to_fill d部分? – joey

+1

我的錯誤,編輯了答案:) – Laurens