Rails 4:如何使用MiniMagick显示方形缩略图



我想用MiniMagick显示一个方形缩略图。

该图像不显示为正方形,尽管它显示。

image_uploader.rb

class ImageUploader < CarrierWave::Uploader::Base
  .
  .
  .
  include CarrierWave::MiniMagick
  .
  .
  .
  storage :file
  .
  .
  .
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
  .
  .
  .
  version :thumb do
    process :resize_to_limit => [150, 150]
  end
  .
  .
  .
end

视图 aritcles_article.html.erb

<li>
    <% article.photos.each do |photo| %>
      <%= image_tag(photo.image_url(:thumb).to_s) if photo.image? %>
   <% end %>
</li>

视图 shared_article_form.html.erb

<%= form_for(@article) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field">
    <%= f.text_area :content, placeholder: "Compose new article..." %>
    <%= f.fields_for :photos do |p| %>
      <%= p.hidden_field :article_id %>
      <%= p.label :image %>
      <%= p.file_field :image %>
      <% if p.object.image and p.object.image.file %>
    <%= image_tag p.object.image.url %>
        <p><%= p.object.image.file.filename %></p>
      <% end %>
    <% end %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

模型 photo.rb

class Photo < ActiveRecord::Base
    mount_uploader :image, ImageUploader
    validates :image, presence: true
end

消息"表单包含1个错误。"和以下错误信息出现在'shared/error_messages'当我提交一个jpg文件

  • 照片图像失败操纵MiniMagick,也许它不是一个图像?原始错误:mogrify.exe:无法打开图像255,': No such file or directory @ error/blob.c/OpenBlob/2643. mogrify.exe: no decode delegate for this image format 255,' @ Error/construct .c/ReadImage/555。mogrify.exe:无法打开图像255,': No such file or directory @ error/blob.c/OpenBlob/2643. mogrify.exe: no decode delegate for this image format 255,' @ error/construct .c/ReadImage/555。mogriff .exe:无法打开图像0.0)': No such file or directory @ error/blob.c/OpenBlob/2643. mogrify.exe: unable to open module file C:Program Files (x86) ImageMagick-6.8.7-Q16modulescodersIM_MOD_RL_0)_.dll':没有这样的文件或目录@ warning/module.c/GetMagickModulePath/682。mogrify.exe:此图像格式没有解码委托' 0.0)' @ error/construct .c/ReadImage/555.

我相信你是一个函数-> resize_and_pad:

  version :thumb do
    process :resize_and_pad => [150, 150]
  end

注意:你可以给[150, 150, "#ffffff"]添加一个颜色,默认情况下它将是透明的。

除非你想做更多的事情,比如剪切缩略图以适应resize_and_pad为你做的大部分事情。

最新更新