我希望使用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
消息&#34;表单包含1个错误。&#34; ,并且&#39; shared / error_messages&#39;中出现以下错误消息当我提交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,&#39; @ 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,&#39; @ error / construct.c / ReadImage / 555。 mogrify.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-Q16 \ modules \ coders \ IM_MOD_RL_0)_。dll&#39;:没有这样的文件或目录@警告/module.c/GetMagickModulePath/682。 mogrify.exe:此图像格式没有解码委托`0.0)&#39; @ error / construct.c / ReadImage / 555。
答案 0 :(得分:0)
我相信你是一个功能 - &gt; resize_and_pad:
version :thumb do
process :resize_and_pad => [150, 150]
end
注意:您可以为[150, 150, "#ffffff"]
添加颜色,默认情况下它将是透明的。
除非您尝试执行cut thumbnail to fit之类的更多内容,resize_and_pad
最适合您。