【问题标题】:Carrierwave, MiniMagick and resizing imagesCarrierwave、MiniMagick 和调整图像大小
【发布时间】:2019-01-24 19:28:25
【问题描述】:

我正在尝试为网站制作一个简单的 rss/博客提要。我想要一个简单的封面照片上传器,它将出现在标题左侧的提要中,并带有博客文章的阅读更多链接。我认为在图像上传器文件中,如果您包含 mini_magick,您可以访问诸如 version :medium do 等方法,用于不同版本的图像上传。无论出于何种原因,在我提交表单后它只会在浏览器中引发错误,而且根本没有帮助。当我删除上传器文件中的版本 :medium do 方法时,图像像正常一样上传,但很小,我真的想调整它的大小。

class ImageUploader < CarrierWave::Uploader::Base

include CarrierWave::MiniMagick
  storage :fog

  version :medium do
      process resize_to_fit: [250, 250]
  end

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

  def extension_white_list
    %w(jpg jpeg gif png)
  end
end

class HomeBlog < ApplicationRecord
  has_many :upvotes
  mount_uploader :image, ImageUploader
end

<%= tinymce_assets %>
<%= simple_form_for(@admin_home_blog) do |f| %>
  <%= f.error_notification %>
  <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>

  <div>
    <h3>Upload a Cover Photo</h3>
    <%= f.file_field :image %>
    <%= f.hidden_field :image_cache %>
  </div>
  <div class="form-inputs">
    <span class="form_labels"><%= f.input :name %></span>
    <%= f.text_area :entry, :class => "tinymce", :rows => 20, :cols => 120 %>
  </div>

  <div class="form-actions">
    <%= f.button :submit, "Create Blog Post" %>
  </div>
<% end %>
<%= tinymce %>

谁能看出有什么问题?我还在 gemfile 中安装了带有载波和雾的 gem 'mini_magick'。

【问题讨论】:

  • 查看this CarrierWave 文档的一部分。这就是我在评论调用特定尺寸时的意思! :)

标签: ruby-on-rails carrierwave image-uploading minimagick


【解决方案1】:

我的声誉还不够高,无法简单地发表评论,但试试这个。

class ImageUploader < CarrierWave::Uploader::Base

include CarrierWave::MiniMagick
  storage :fog

  # move this line outside of your method
  process resize_to_fit: [512,512]         

  version :medium do

      # change the word 'fit' to 'fill'
      process resize_to_fill: [250,250]
  end

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

  def extension_white_list
    %w(jpg jpeg gif png)
  end
end

根据我所看到的以及我所取得的成功,只需将大小调整为 FIT 一次(在每种照片尺寸方法之前),然后将大小调整为 FILL 以适应所有不同的照片尺寸。祝你好运!

【讨论】:

  • 酷!我很快就会试一试。我会让你知道会发生什么。感谢您花时间回答。干杯!
  • 是的,它仍然没有调整大小。至少它上传了封面照片....不知道为什么这么难。我非常沮丧
  • 有一些方法可以访问特定的大小。我相信它类似于 objectname.medium.url 是你如何调用照片(在 中)我会尽快回复你
  • 是的,你是对的。我这样称呼它:
  • 图片稍大,但绝对不是我在上传器中的中版方法中设置的尺寸
【解决方案2】:

如果您在使用carrierwave 或回形针时遇到困难并且无法让Mini_Magick 工作,并且只想像我一样调整为更大的图像?简单的内嵌样式就足够了。不要在上传文件中的版本废话上浪费太多时间。也许有些人没有问题,或者他们已经破解了密码。我想我很特别,哈哈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-04
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多