使用Paperclip / Rails将纵向转换为横向,并将左右边距转换为新图像

时间:2014-05-27 03:39:55

标签: ruby-on-rails ruby image imagemagick paperclip

我正在使用Paperclip和Rails。目前,如果用户上传肖像图像,Paperclip将从图像的顶部和底部裁剪掉,并“强制”中间部分以适合我定义的样式(如下所示)。

然而,我想要的是要保留的肖像图像,并在图像的左侧和右侧添加“间距”。基本上,保留新的风景图像内的肖像图像。到目前为止,我只能找到简单旋转图像的例子。见下面的例子:

enter image description here

enter image description here

enter image description here

这是我的样式信息:

has_attached_file :image,
                  :styles => { thumb: "100x100#",
                               medium: "300x300>",
                               display: "759x506#" }

我目前没有应用任何前置/后置处理器或插值。

1 个答案:

答案 0 :(得分:3)

根据the ImageMagick docs,您可以使用-extent选项实现此目的,例如:

convert input.jpg -resize 800x600 -background black -compose Copy \ 
-gravity center -extent 800x600 -quality 92 output.

According to the Paperclip docs,您现在可以通过以下方式将相关的命令行标志添加到回形针。例如,对于:medium

has_attached_file :image, :styles => { thumb: "100x100#",
                                       medium: "300x300>",
                                       display: "759x506#" },
                          :convert_options => { all: "-background black -compose Copy -gravity center"
                                                medium:  "-extent 300x300"}