Ton*_*ate 12 paperclip orientation ruby-on-rails-3
我最近遇到了一个问题,用户上传了一个图像,并且在某处某处,回形针正在翻转它.
有问题的图片可以在http://photoramblr.com/photos/36看到
如你所见,图像是颠倒的; 但是将图像拖到桌面上它会出现在正确的位置.由于此图像是在iPhone上拍摄的,因此我只能假设这与iPhone上图像的方向设置有关.有没有人遇到这样的事情或有任何建议如何解决这个问题?
这里的代码是非常简单的Paperclip术语:
class Photo < ActiveRecord::Base
has_attached_file :image,
:storage => :s3,
:s3_credentials => S3_CREDENTIALS,
:styles => {
:thumb => "100x100#",
:small => "138x138>",
:large => "580x580>",
:x_large => "1600x1600>"}
Run Code Online (Sandbox Code Playgroud)
嗯,我能够通过拍摄图像的截图并上传它来解决这个问题.元数据中肯定有一些东西正在设置正确的方向,而这些方向并未完成.
Mic*_*ley 11
是的,这是我们上周解决的问题.:)如果您使用ImageMagick/RMagic进行图像处理,您可以使用Image#auto_orient"根据图像的EXIF方向标记旋转或翻转图像" ; 在Paperclip处理器的图像上调用此方法,你应该很高兴.
[编辑]
您可能对Rails,Paperclip,-auto-orient和resizing ...感兴趣.我还发现有趣的是CarrierWave使这个过程非常简单:
class ImageUploader < CarrierWave::Uploader::Base
... # config here
process :rotate
def rotate
manipulate! do |image|
image.auto_orient
end
end
end
Run Code Online (Sandbox Code Playgroud)
Paperclip添加了一个source_file_options允许您传递直接应用于源文件的处理器选项,然后生成后续缩略图和样式.
您可以添加此选项以自动定位源文件,如下所示:
class Photo < ActiveRecord::Base
has_attached_file :image,
storage: :s3,
s3_credentials: S3_CREDENTIALS,
source_file_options: { all: '-auto-orient' },
styles: { thumb: "100x100#",
small: "138x138>",
large: "580x580>",
x_large: "1600x1600>" }
Run Code Online (Sandbox Code Playgroud)
这应该是从gem 2.3.16版开始提供的.
有关更多信息,请参阅Paperclip的Github存储库中的以下问题:
https://github.com/thoughtbot/paperclip/issues/591
设置original样式以创建自动定向和大小限制版本也不是一个糟糕的主意,如下所示:
original: "5000x5000>"
Run Code Online (Sandbox Code Playgroud)
注意:但是,如果您希望上传不仅仅是图像(如PDF),则会因不保留原始PDF而只存储PDF第一页的图像而导致问题.
| 归档时间: |
|
| 查看次数: |
4564 次 |
| 最近记录: |