ImageProcessing::Error 将 crop 参数传递给变体时
ImageProcessing::Error when passing crop argument to variant
我有一个带有 has_one_attached :file
的模型,我想使用自定义 crop
参数对其进行处理。附件是我测试用的jpg格式照片
之前,我以这种方式缩放和裁剪图像,效果如预期。
my_model.file.variant(resize_to_fill: [1440, 560, { gravity: 'Center' }])
现在我想更改中心/焦点以将图像裁剪到自定义位置。简单的 imagemagick 命令将是 convert input.jpg -crop 1440x560+580+120 output.jpg
,按预期在命令行上工作。
文档说明您几乎可以将任何 imagemagick 命令传递给 .variant()
,这让我尝试这样做:
my_model.file.variant(crop: '1440x560+580+120')
这会引发以下错误:
ImageProcessing::Error - Source format is multi-layer, but destination format is
single-layer. If you care only about the first layer, add `.loader(page: 0)` to
your pipeline. If you want to process each layer,
see https://github.com/janko/image_processing/wiki/Splitting-a-PDF-into-multiple-images
or use `.saver(allow_splitting: true)`.
我阅读了 image_processing 的手册并了解管道的工作原理,但我缺少 where/how 的部分以通过 .variant()
调整管道以获得结果.
我是不是做错了什么,还是只是遗漏了一些简单的部分?否则我会采用 image_processing 管道原始编写的方式并解决它。
我的环境包括:
- rails - v6.0.2.2
- mini_magick gem - v4.10.1
- image_processing gem - v1.10.3
- ImageMagick 7.0.8-66
尝试my_model.file.variant(combine_options: { crop: '1440x560+580+120')
我有一个带有 has_one_attached :file
的模型,我想使用自定义 crop
参数对其进行处理。附件是我测试用的jpg格式照片
之前,我以这种方式缩放和裁剪图像,效果如预期。
my_model.file.variant(resize_to_fill: [1440, 560, { gravity: 'Center' }])
现在我想更改中心/焦点以将图像裁剪到自定义位置。简单的 imagemagick 命令将是 convert input.jpg -crop 1440x560+580+120 output.jpg
,按预期在命令行上工作。
文档说明您几乎可以将任何 imagemagick 命令传递给 .variant()
,这让我尝试这样做:
my_model.file.variant(crop: '1440x560+580+120')
这会引发以下错误:
ImageProcessing::Error - Source format is multi-layer, but destination format is
single-layer. If you care only about the first layer, add `.loader(page: 0)` to
your pipeline. If you want to process each layer,
see https://github.com/janko/image_processing/wiki/Splitting-a-PDF-into-multiple-images
or use `.saver(allow_splitting: true)`.
我阅读了 image_processing 的手册并了解管道的工作原理,但我缺少 where/how 的部分以通过 .variant()
调整管道以获得结果.
我是不是做错了什么,还是只是遗漏了一些简单的部分?否则我会采用 image_processing 管道原始编写的方式并解决它。
我的环境包括:
- rails - v6.0.2.2
- mini_magick gem - v4.10.1
- image_processing gem - v1.10.3
- ImageMagick 7.0.8-66
尝试my_model.file.variant(combine_options: { crop: '1440x560+580+120')