A set of transformations that can be applied to a blob to create a variant. This class is exposed via the ActiveStorage::Blob::Representable#variant method and should rarely be used directly.
In case you do need to use this directly, it's instantiated using a hash of transformations where the key is the command and the value is the arguments. Example:
ActiveStorage::Variation.new(resize: "100x100", monochrome: true, trim: true, rotate: "-90")
You can also combine multiple transformations in one step, e.g. for center-weighted cropping:
ActiveStorage::Variation.new(combine_options: {
resize: "100x100^",
gravity: "center",
crop: "100x100+0+0",
})
A list of all possible transformations is available at www.imagemagick.org/script/mogrify.php.
[R] | transformations |
Returns a signed key for the transformations
, which can be
used to refer to a specific variation in a URL or combined key (like
ActiveStorage::Variant#key
).
Returns a signed key for all the transformations
that this
variation was instantiated with.
Accepts an open MiniMagick image instance, like what's returned by
MiniMagick::Image.read(io)
, and performs the
transformations
against it. The transformed image instance is
then returned.
# File activestorage/app/models/active_storage/variation.rb, line 56 def transform(image) ActiveSupport::Notifications.instrument("transform.active_storage") do transformations.each do |name, argument_or_subtransformations| image.mogrify do |command| if name.to_s == "combine_options" argument_or_subtransformations.each do |subtransformation_name, subtransformation_argument| pass_transform_argument(command, subtransformation_name, subtransformation_argument) end else pass_transform_argument(command, name, argument_or_subtransformations) end end end end end