Rails 5.2 MiniMagick::Error 使用具有比率和活动存储的图像变体时

Posted

技术标签:

【中文标题】Rails 5.2 MiniMagick::Error 使用具有比率和活动存储的图像变体时【英文标题】:Rails 5.2 MiniMagick::Error when using image variant with ratio and active storage 【发布时间】:2018-08-06 08:05:22 【问题描述】:

在我的本地,以下代码从视图中可以正常工作...

image_tag image.variant(combine_options: resize:"1200", gravity: "Center", crop: "6:3")

在生产 Digital Ocean Ubuntu 16.04 上出现错误...

MiniMagick::Error (mogrify -gravity Center -crop 6:3 /tmp/mini_magick20180806-26536-1n7pdkl.jpg failed with error: mogrify-im6.q16: invalid geometry `6:3' @error/geometry.c/ParseGravityGeometry/1185.):

真的希望有人在这里找到解决方案,因为通过定义比率来裁剪方法非常适合我的目的。

如果我将代码更改为...

image_tag image.variant(combine_options: gravity: "Center", crop: "1200x800+0+0")

我没有收到错误,但我也没有得到我想要的结果。

我完全不知所措,因为我无法在我的开发环境中复制它。我已将服务器上的 ImageMagick 和 MiniMagick 更新为与本地相同的版本。想不出还有什么可以尝试的。

【问题讨论】:

【参考方案1】:

基于 http://www.imagemagick.org/script/command-line-options.php#crop 作物正在接受几何参数。几何在这里描述:http://www.imagemagick.org/script/command-line-processing.php#geometry

我的印象是你的比例应该被描述为“3:2~”而不是“3:2”

【讨论】:

实际上,该命令在我的本地 mogrify -gravity Center -crop 10:1 test.png 上运行良好,所以看起来图像魔法有问题。你知道你得到了什么版本的图像魔法吗? 谢谢@lis2!以下是服务器上的图像 magik 详细信息... 版本:ImageMagick 6.9.7-4 Q16 x86_64 20170114 imagemagick.org 版权所有:© 1999-2017 ImageMagick Studio LLC 许可证:imagemagick.org/script/license.php 功能:密码 DPC 模块 OpenMP 代表(内置) : bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib 你去!我在我的 Mac 上安装了 imagemagick,一切都很好,因为它安装了 imagemagick 7.0.8-10。并在此处查看更改日志imagemagick.org/script/changelog.php - 他们添加了纵横比几何 2018-01-07 - 版本 7.0.7 。坏消息是我找不到通过 apt-get 安装它的方法,人们正在从源代码编译它 - medium.com/@sanjaywrites/… 我已经通知 ImageMagick 开发人员,在最近版本的 ImageMagick 中,纵横比裁剪存在潜在错误。【参考方案2】:

谢谢@lis2 升级到最新版本的 ImageMagick 就可以了。 如果有人需要,请在此处进行操作... [https://linuxhint.com/imagemagick-bitmap-images-editor/][1] 适用于 Ubuntu 18 以及 14 和 16。

然后ssh进入服务器

wget http://www.imagemagick.org/download/ImageMagick.tar.gz
tar -xvf ImageMagick.tar.gz
cd ImageMagick-7.0.*
./configure --prefix=/usr
make
sudo make install
sudo ldconfig /usr/local/lib

上面的方法让我没有代表来解析 png 和 jpeg。 做以下工作...

wget http://www.imagemagick.org/download/ImageMagick.tar.gz
tar -xvf ImageMagick.tar.gz
cd ImageMagick-7.0.*
./configure --prefix=/usr
make
sudo make install
sudo ldconfig /usr/local/lib
./configure --enable-shared
make libdir=/usr/lib
sudo make libdir=/usr/lib install
./configure --enable-shared=yes --x-libraries=/usr/lib --without-perl
make
sudo make install

现在当我确定 -version 我得到... 版本:ImageMagick 7.0.8-12 Q16 x86_64 2018-09-27 https://imagemagick.org 版权所有:© 1999-2018 ImageMagick Studio LLC 许可证:https://imagemagick.org/script/license.php 特点:密码 DPC HDRI OpenMP 代表(内置): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr lzma openexr pangocairo png tiff wmf x xml zlib

干杯 丹

【讨论】:

以上是关于Rails 5.2 MiniMagick::Error 使用具有比率和活动存储的图像变体时的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 5.2 中禁用活动存储

ruby Rails 5.2枚举新用法

将 Rails 5.2 升级到 6.0.0 后内存泄漏

Rails 5.2 + Trix + ActiveStorage

markdown 设置Vagrant para Rails 5.2

Rails 5.2 不呈现新视图