2015-12-15 4 views
1

Я пытаюсь загрузить изображения в блог с помощью несущей волны. в блоге, я хочу, чтобы все изображения помещались в один и тот же размер, независимо от размера фотографии. Я хочу, чтобы все они были 450x253. Вот мой код:Изменение размера изображений с использованием мини-гигабайта и несущей волны

Uploader файл для несущей волны:

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) %> 

I также попробовали:

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

так как файл моего загрузчика говорит, что profile_size должен отображать 450x253, но это все еще не работает. С моим текущим кодом, размер фото, как отображается на странице так же размер все это, что я загружаю, он не изменяет размер вообще, например:

photo of my screenshot

I хотите, чтобы все они были того же размера, что и слева на фотографии, но автоматически изменялись до этого (тот, который на фотографии, естественно, имеет размер), как я могу это сделать? Я уже пробовали искать здесь: 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 работал, но ваш ответ все еще говорит resize_to_fill в secon d часть? – joey

+1

Моя ошибка, отредактировал ответ :) – Laurens

Смежные вопросы