UNPKG

@cloudinary/url-gen

Version:

Cloudinary URL-Gen SDK ========================= [![Build Status](https://api.travis-ci.com/cloudinary/js-url-gen.svg?branch=master)](https://app.travis-ci.com/github/cloudinary/js-url-gen) ## About The Cloudinary URL-Gen SDK allows you to quickly and eas

304 lines (300 loc) 12.5 kB
'use strict'; var ResizePadAction = require('./ResizePadAction-122e911c.cjs'); var ResizeSimpleAction = require('./ResizeSimpleAction-9bd1bf50.cjs'); var ResizeScaleAction = require('./ResizeScaleAction-e12f691f.cjs'); var ThumbnailAction = require('./ThumbnailAction-70bb4ffe.cjs'); var ResizeCropAction = require('./ResizeCropAction-9c713a96.cjs'); var ResizeFillAction = require('./ResizeFillAction-eed093ab.cjs'); var ResizeLimitFitAction = require('./ResizeLimitFitAction-c09dfab6.cjs'); var ResizeLimitFillAction = require('./ResizeLimitFillAction-c7942ee3.cjs'); var ResizeLimitPadAction = require('./ResizeLimitPadAction-f1162509.cjs'); var ResizeMinimumPadAction = require('./ResizeMinimumPadAction-48231b80.cjs'); /** * @description Determines how to crop, scale, and/or zoom the delivered asset according to the requested dimensions. * @memberOf Actions * @namespace Resize * @see Learn more about Gravity and Focus {@link Qualifiers.Gravity| here } * @example * <caption> <h4>Scaling an image</h4> </caption> * import {Cloudinary} from "@cloudinary/url-gen"; * import {scale, fit, pad, crop} from '@cloudinary/url-gen/actions/resize'; * * const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}}); * const image = yourCldInstance.image('woman'); * * image.resize( scale(100, 100) ); * // All resize actions have a similar interface. * // image.resize( fit(100, 100)) ); * // image.resize( pad(100, 100)) ); * // image.resize( crop(100, 100)) ); * // However, Some actions have additional arguments exposed as builder methods. * // See the documentation for each method for more information * * * // Alternative syntax, using builder methods * image.resize( * scale() * .width(100) * .height(100) * ); * image.toString() * * @example * <caption> <h4>Cropping with automatic focus(Gravity)</h4> </caption> * import {Cloudinary} from "@cloudinary/url-gen"; * * const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}}); * const image = yourCldInstance.image('woman'); * * import {scale} from '@cloudinary/url-gen/actions/resize'; * import {autoGravity} from '@cloudinary/url-gen/qualifiers/gravity'; * * image.resize( crop(100, 100).gravity(autoGravity()) ); * * // Alternative syntax, using builder methods * image.resize( * scale() * .width(100) * .height(100) * .gravity(autoGravity()) * ); * image.toString() */ /** * @summary action * @description * Changes the size of the image exactly to the given width and height without necessarily retaining the original aspect ratio:<br/> * all original image parts are visible but might be stretched or shrunk. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ScaleAction} */ function scale(width, height) { return new ResizeScaleAction.ResizeScaleAction('scale', width, height); } /** * @summary action * @description * Scales your image based on automatically calculated areas of interest within each specific photo. * * For details, see the Imagga Crop and Scale {@link https://cloudinary.com/documentation/imagga_crop_and_scale_addon#smartly_scale_images|add-on documentation}. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizeSimpleAction} */ function imaggaScale(width, height) { return new ResizeSimpleAction.ResizeSimpleAction('imagga_scale', width, height); } /** * @summary action * @description * Crops your image based on automatically calculated areas of interest within each specific photo. * * For details, see the Imagga Crop and Scale {@link https://cloudinary.com/documentation/imagga_crop_and_scale_addon#smartly_crop_images|add-on documentation}. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizeSimpleAction} */ function imaggaCrop(width, height) { return new ResizeSimpleAction.ResizeSimpleAction('imagga_crop', width, height); } /** * @summary action * @description Extracts a region of the given width and height out of the original image. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizeCropAction} */ function crop(width, height) { return new ResizeCropAction.ResizeCropAction('crop', width, height); } /** * @summary action * @description * Creates an image with the exact given width and height without distorting the image.<br/> * This option first scales up or down as much as needed to at least fill both of the given dimensions.<br/><br/> * If the requested aspect ratio is different than the original, cropping will occur on the dimension that exceeds the requested size after scaling. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizeFillAction} */ function fill(width, height) { return new ResizeFillAction.ResizeFillAction('fill', width, height); } /** * @summary action * @description * The image is resized so that it takes up as much space as possible within a bounding box defined by the given width and height parameters.</br> * The original aspect ratio is retained and all of the original image is visible. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizeSimpleAction} */ function fit(width, height) { return new ResizeSimpleAction.ResizeSimpleAction('fit', width, height); } /** * @summary action * @description * Resizes the asset to fill the given width and height while retaining the original aspect ratio. * * If the proportions of the original asset do not match the given width and height, padding is added to the asset * to reach the required size. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizePadAction} */ function pad(width, height) { return new ResizePadAction.ResizePadAction('pad', width, height); } /** * @summary action * @description * Creates an asset with the exact given width and height without distorting the asset, but only if the original * asset is larger than the specified resolution limits. * * The asset is scaled down to fill the given width and height without distorting the asset, and then the dimension * that exceeds the request is cropped. If the original dimensions are both smaller than the requested size, it is * not resized at all. * * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizeLimitFillAction} */ function limitFill(width, height) { return new ResizeLimitFillAction.ResizeLimitFillAction('lfill', width, height); } /** * @summary action * @description * Resizes the asset so that it takes up as much space as possible within a bounding box defined by the given * width and height parameters, but only if the original asset is larger than the given limit (width and height). * * The asset is scaled down, the original aspect ratio is retained and all of the original asset is visible. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizeSimpleAction} */ function limitFit(width, height) { return new ResizeLimitFitAction.ResizeLimitFitAction('limit', width, height); } /** * @summary action * @description * Resizes the asset to fill the given width and height while retaining the original aspect ratio, but only if the * original asset is smaller than the given minimum (width and height). * * The asset is scaled up. If the proportions of the original asset do not match the given width and height, * padding is added to the asset to reach the required size. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizePadAction} */ function minimumPad(width, height) { return new ResizeMinimumPadAction.ResizeMinimumPadAction('mpad', width, height); } /** * @summary action * @description * Resizes the asset so that it takes up as much space as possible within a bounding box defined by the given * width and height parameters, but only if the original asset is smaller than the given minimum (width and height). * * The asset is scaled up, the original aspect ratio is retained and all of the original asset is visible. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizeSimpleAction} */ function minimumFit(width, height) { return new ResizeSimpleAction.ResizeSimpleAction('mfit', width, height); } /** * @summary action * @memberOf Actions.Resize * @description * Tries to prevent a "bad crop" by first attempting to use the fill mode, but adding padding if it is determined * that more of the original image needs to be included in the final image. * * Especially useful if the aspect ratio of the delivered image is considerably different from the original's * aspect ratio. * * Only supported in conjunction with Automatic cropping. * * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizePadAction} */ function fillPad(width, height) { return new ResizePadAction.ResizePadAction('fill_pad', width, height); } /** * @summary action * @description * The thumb cropping mode is specifically used for creating image thumbnails from either face or custom coordinates,</br> * and must always be accompanied by the gravity parameter set to one of the face detection or custom values. * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ThumbResizeAction} */ function thumbnail(width, height) { return new ThumbnailAction.ThumbResizeAction('thumb', width, height); } /** * @summary action * @description * Resizes the asset to fill the given width and height while retaining the original aspect ratio, but only if the * original asset is larger than the given limit (width and height). * * The asset is scaled down. If the proportions of the original asset do not match the given width and height, * padding is added to the asset to reach the required size. * * @memberOf Actions.Resize * @param {number|string} width The required width of a transformed asset. * @param {number|string} height The required height of a transformed asset. * @return {Actions.Resize.ResizePadAction} */ function limitPad(width, height) { return new ResizeLimitPadAction.ResizeLimitPadAction('lpad', width, height); } const Resize = { imaggaScale, imaggaCrop, crop, fill, scale, minimumPad, fit, pad, limitFit, thumbnail, limitFill, minimumFit, limitPad, fillPad }; exports.Resize = Resize; exports.crop = crop; exports.fill = fill; exports.fillPad = fillPad; exports.fit = fit; exports.imaggaCrop = imaggaCrop; exports.imaggaScale = imaggaScale; exports.limitFill = limitFill; exports.limitFit = limitFit; exports.limitPad = limitPad; exports.minimumFit = minimumFit; exports.minimumPad = minimumPad; exports.pad = pad; exports.scale = scale; exports.thumbnail = thumbnail;