- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的Rails应用程序中有照片上传功能。该应用程序通过rmagick和fog通过载波直接上传到s3。我遇到的问题是当通过肖像中的“拍摄照片选项”通过手机上传照片时(请注意,这是在iphone上,但我相信android也存在同样的问题)。上载后,图片在移动设备上看起来不错,但是在台式机上查看时,图片似乎旋转了90度。
通过我的研究,似乎与exif有关。该stackoverflow responder概述了2个潜在的解决方案。这个gist也看起来很有希望。
到目前为止,我发现已经发布了一些解决方案,但是没有一个起作用。理想情况下,我希望将照片作为肖像保存到s3,然后按原样显示图像。
任何建议都很好。
下面是我的代码
app / uploaders / image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWaveDirect::Uploader
include CarrierWave::RMagick
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
include Sprockets::Helpers::RailsHelper
include Sprockets::Helpers::IsolatedHelper
include CarrierWave::MimeTypes
process :fix_exif_rotation
process :set_content_type
version :thumb do
process resize_to_fill: [200, 200]
end
def extension_white_list
%w(jpg jpeg png)
end
def fix_exif_rotation #this is my attempted solution
manipulate! do |img|
img = img.auto_orient!
end
end
end
class S3Image < ActiveRecord::Base
attr_accessible :image, :name, :user_id
mount_uploader :image, ImageUploader
belongs_to :user
def image_name
File.basename(image.path || image.filename) if image
end
class ImageWorker
include Sidekiq::Worker
def perform(id, key)
s3_image = S3Image.find(id)
s3_image.key = key
s3_image.remote_image_url = s3_image.image.direct_fog_url(with_path: true)
s3_image.save!
s3_image.update_column(:image_processed, true)
end
end
end
CarrierWave.configure do |config|
config.fog_credentials = {
provider: "AWS",
aws_access_key_id: " ... ",
aws_secret_access_key: " ... "
}
config.fog_directory = " ... "
end
最佳答案
好吧,我使用雾代替了这个方法,或者使用了carrierwave_direct。
以下是最终为我工作的代码:
app / uploaders / image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
include Sprockets::Helpers::RailsHelper
include Sprockets::Helpers::IsolatedHelper
storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def fix_exif_rotation #this is my attempted solution
manipulate! do |img|
img.tap(&:auto_orient)
end
end
process :fix_exif_rotation
end
class S3Image < ActiveRecord::Base
attr_accessible :image, :name, :user_id, :image_cache
mount_uploader :image, ImageUploader
belongs_to :user
end
CarrierWave.configure do |config|
config.fog_credentials = {
provider: "AWS",
aws_access_key_id: " ... ",
aws_secret_access_key: " ... ",
region: 'us-west-2'
}
config.fog_directory = " ... "
end
关于ruby-on-rails - 使用载波和rmagick上传到s3的exif图像旋转问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519160/
我有 2 个图像, Logo 和背景, Logo 是我放置在背景中心的一个小图像。为了使图像看起来更好,我试图让它在 Logo 边缘拾取颜色并将其设置为背景的背景颜色。 我已经让一切正常工作了颜色查找
我正在尝试使用 Rmagick 调整图像大小,如果我使用 resize_to_fit方法总是先调整高度,而不是宽度,但似乎我的大多数图像都首先调整为宽度。无论如何使用resize_to_fit告诉它“
我有一个带有大图像的全尺寸 slider 例如:1885x1440这些是照片,我需要使用 RMagick 对其进行优化但保持质量和图像大小(1885x1440) 我认为应该是这种方法之一http://
尝试使用 rmagick 镶嵌图像。 如何“马赛克模糊”现有图像使其代表马赛克的图片? 喜欢: 最佳答案 这就是你如何使用 RMagick 做马赛克 #!/home/software/ruby-1.8
当我在 rails 的 lib 文件夹中运行命令 ruby billede.rb 时,出现错误: C:\Rails\myapp\lib>ruby billede.rb C:/Ruby192/lib
当我通过 FactoryGirl 和 Faker 创建一个对象时,shell 显示一个错误 [1] pry(main)> FactoryGirl.create(:company) [DEPRECATI
我正在使用 Mac pro Lion 通过 ImageMagick Q16、RVM 和 ruby 1.8.7 进行开发 我可以在 IRB 中使用以下内容: 注意“rmagick”这个词的不同大写
我使用脚本来安装 ImageMagick http://github.com/masterkain/ImageMagick-sl 过了一会儿,我安装了 ImageMagick。 然后我运行 sudo
在 linux 中,我正在执行以下操作将多页 PDF 转换为调整大小并具有高分辨率的图像: convert -verbose -colorspace RGB -resize 800 -interlac
我正在尝试在 RMagick 中创建撕裂边缘效果。有没有类似photoshop的crystallize的滤镜? 另外,我在这里找到了这个 ImageMagick 代码 http://www.image
我的环境是 Linux centos,使用 ruby 1.8.7,代码如下: require 'rubygems' require 'RMagick' Magick::Image.read("ht
我想调整/缩放图像。原件的尺寸与 300x200 或 512x600 不同。我想将图像的大小调整为 100x100,但不要裁剪图像中的任何内容或更改比例。理想情况下,图像将首先将长边缩放到 100(宽
今天我试着写一个代码从文件夹生成动画gif但我得到这个错误: .../.gem/ruby/2.0.0/gems/rmagick-2.13.2/lib/RMagick.rb:1635:in `read'
在我的 Mac 上安装 rmagick gem 时遇到问题。我所有的软件都是最新的。这是我的错误信息。我试过重新安装 ImageMagick,但似乎没有任何效果。我使用自制软件 - 不能因为这个问题,
下面的 imageMagick 命令会将一个 Sprite 图像裁剪成几个均分的图像: convert image.png -crop 2x3-40-20@ +repage +adjoin tile-
我无法找到如何使用 RMagick 获取给定字形的所有指标。 我知道有一个 get_type_metrics 方法可以给出基线、高度、上升、下降等,但我还想获得给定字形的 x 高度、大写高度、边界矩形
我试图在将图像合成到另一个图像之前旋转图像,使用 RMagick 和 ruby。我可以合成叠加图像,但是当我尝试旋转图像时,背景的部分被移除,就像这样...... 我不确定我应该使用哪个 Comp
我在这里试过这个例子: http://www.imagemagick.org/RMagick/doc/usage.html#annotation 但我只能生成这张图片。 这看起来与该页面上生成的图像不
有没有办法在我设置宽度和高度的 rmagick 中缩放和图像,以便图像包含相同的比例? 最佳答案 我使用 resize_to_fit 方法,它将使用提供的参数作为最大宽度/高度,但会保持宽高比。所以,
我发现当你想在 Rmagick 中裁剪图像时,它不会改变当前图像对象,但会返回一个新图像。 所以,如果我有: @image = Magick::ImageList.new(path) @cropped
我是一名优秀的程序员,十分优秀!