我想用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
为你做的大部分事情。