Ruby 使用image=MiniMagick从原件复制多个副本

Ruby 使用image=MiniMagick从原件复制多个副本,ruby,minimagick,Ruby,Minimagick,我需要生成不同格式/大小的图像的多个副本。我可以在不重新打开每种格式/大小的源代码的情况下执行此操作吗 举个例子: # Original image is jpeg image = MiniMagick::Image.open url image.crop dimensions image.format 'pdf' upload image # image = MiniMagick::Image.open url # No! Needless network traffic and proces

我需要生成不同格式/大小的图像的多个副本。我可以在不重新打开每种格式/大小的源代码的情况下执行此操作吗

举个例子:

# Original image is jpeg
image = MiniMagick::Image.open url
image.crop dimensions
image.format 'pdf'
upload image
# image = MiniMagick::Image.open url # No! Needless network traffic and processing.
image.format 'png'
image.resize new_size
upload image
如果没有第二个
#open
,这段代码就不好,因为当调用
image.format'png'
时,图像是PDF格式的,所以我最终会将其光栅化,这不是我想要做的


有一种方法
#clone
,但它不会克隆图像对象。而是为转换器设置一个参数。我不知道这是否符合我的目的。

我找到了一种方法,看起来不错

# Original image is jpeg
image = MiniMagick::Image.open url
image.crop dimensions

new_image = MiniMagick::Image.open image.tempfile.path

image.format 'pdf'
upload image

new_image.format 'png'
new_image.resize new_size
upload new_image

PDF和PNG都将被裁剪,但每种格式只转换一次。

我找到了一种方法,看起来不错

# Original image is jpeg
image = MiniMagick::Image.open url
image.crop dimensions

new_image = MiniMagick::Image.open image.tempfile.path

image.format 'pdf'
upload image

new_image.format 'png'
new_image.resize new_size
upload new_image
PDF和PNG都将被裁剪,但每种格式只转换一次