3

我正在使用 Amazon 的 S3 进行图像存储,并配置了载波和雾。图像似乎可以正确存储,但是当我有一个“纵向”图像(宽度小于高度)时,它无法正确显示,而是将图像侧向旋转。

任何指向正确方向的指针将不胜感激!

上传者/image_uploader.rb

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick

  include Sprockets::Helpers::RailsHelper
  include Sprockets::Helpers::IsolatedHelper

  storage :fog

  include CarrierWave::MimeTypes
  process :set_content_type

  process :resize_to_limit => [420, 0]

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

  def extension_white_list
    %w(jpg jpeg png)
  end

end

显示.html.haml

= image_tag(@idea.image_attachments.first.image.url).to_s

image_attachment.rb

class ImageAttachment < ActiveRecord::Base
  require 'carrierwave/orm/activerecord'
  attr_accessible :image, :description
  belongs_to :image_attachable, polymorphic: true
  mount_uploader :image, ImageUploader
end
4

2 回答 2

1

在 uploader.rb 文件中,尝试

process :auto_orient 

def auto_orient
 manipulate! do |image|
   image.tap(&:auto_orient)
 end
end

它应该修复它。

于 2016-02-29T17:11:17.520 回答
0

也许与其尝试调整大小限制,不如创建一个您想要符合的版本。例如,如果您希望所有图片“智能”缩小为正方形,则可以执行以下操作

从上传者中删除:

process :resize_to_limit => [420, 0]

添加到上传者:

版本 :portrait 做过程 :resize_to_fit => [100, 100] end

这样,carrierwave 将存储原始图像,然后在您执行以下操作时也会响应您的呼叫:

@idea.image_url(:portrait)

这是假设您的 Idea 模型安装了您的 ImageUploader 并且已经配置了所有其他必要的东西。

于 2013-10-03T17:45:44.117 回答