Ruby on rails Rails回形针在上传前旋转图像
我的问题很简单:在将图像上传到AmazonS3之前,我想将其旋转到270°。 我从研究中了解到,我必须使用“处理器”来完成这项工作。我试了很多东西,但都卡住了 我的模型如下所示:Ruby on rails Rails回形针在上传前旋转图像,ruby-on-rails,amazon-web-services,paperclip,Ruby On Rails,Amazon Web Services,Paperclip,我的问题很简单:在将图像上传到AmazonS3之前,我想将其旋转到270°。 我从研究中了解到,我必须使用“处理器”来完成这项工作。我试了很多东西,但都卡住了 我的模型如下所示: has_attached_file :label, :storage => :s3, :bucket => 'my_bucket', :s3_permissions => :private, :s3_credentials => { access_key_id: Rail
has_attached_file :label,
:storage => :s3,
:bucket => 'my_bucket',
:s3_permissions => :private,
:s3_credentials => {
access_key_id: Rails.application.secrets[:aws_access_key_id],
secret_access_key: Rails.application.secrets[:aws_secret_access_key]
},
:s3_host_name => "s3-eu-west-1.amazonaws.com",
:processors => [:rotator]
def rotator
self.rotation = 270
self.save
end
我想我误解了这个处理器的位置和工作原理。我想我需要直接把它放到模型中,然后像方法一样调用它?然后我可以将上传图像(self)的旋转设置为270度,然后保存。但那是行不通的
我怎样才能意识到这一点非常简单?如果您正在这样做,我想您已经设置了ImageMagick。公司接受一大堆的选择。我刚刚在控制台中成功地尝试了
convert screen.jpg-rotate 270.jpg
。对于回形针,您将使用转换\u选项
这只适用于转换后的图像,因此您需要明确定义一种样式,例如用于转换的原始样式、拇指样式等。下面是一个示例
has_attached_file :image,
url: '/system/:class/:id/:style/image.:extension',
styles: {
original: '650x',
thumb: '100x100'
},
convert_options: {
all: '-rotate 270 -strip -interlace Plane -quality 80%'
}
需要注意的是,-rotate
可能不会进行无损转换,因此您可能需要检查图像质量并进行相应调整
那将是
:convert_options=>{:full=>'-rotate 270'}
对于完整图像,不是吗?不工作。您的系统上是否确实安装了ImageMagick?我会亲自在Rails中尝试。我还在样式
散列中定义了:thumb
。我不确定默认情况下是否定义了full
。我想它叫original
thumb和:show已旋转,但原始图像未旋转。如果你像在我的更新中那样明确定义:原始大小,它应该可以工作。你是我的英雄。谢谢!