> ## Documentation Index
> Fetch the complete documentation index at: https://cloudinary.com/documentation/llms.txt
> Use this file to discover all available pages before exploring further.

# Image resize modes


The resize modes adjust the dimensions of an image without cropping out any elements from the original. This page covers `scale`, `fit`, `limit`, and `mfit` — modes that fit the image within a bounding box. For padding modes (`pad`, `lpad`, `mpad`), see [Image padding modes](image_padding_modes). For crop modes (`fill`, `crop`, `thumb`, `auto`, and others), see [Image crop modes](image_crop_modes).

## scale

The `scale` resize mode changes the size of the image exactly to the specified dimensions without necessarily retaining the original aspect ratio: all original image parts are visible but might be stretched or squashed. If only the width or height is specified, then the image is scaled to the new dimension while retaining the original aspect ratio.

**See full syntax**: [c_scale](transformation_reference#c_scale) in the _Transformation Reference_.
  
### Example 1: Scale while maintaining aspect ratio 

Scale the camera image to a width of 150 pixels (maintains the aspect ratio by default):

![Image scaled to a width of 150 pixels](https://res.cloudinary.com/demo/image/upload/c_scale,w_150/docs/camera.jpg "width:150")

```nodejs
cloudinary.image("docs/camera.jpg", {width: 150, crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150));
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150));
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150));
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150));
```

```python
CloudinaryImage("docs/camera.jpg").image(width=150, crop="scale")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera.jpg'))
	->resize(Resize::scale()->width(150));
```

```java
cloudinary.url().transformation(new Transformation().width(150).crop("scale")).imageTag("docs/camera.jpg");
```

```ruby
cl_image_tag("docs/camera.jpg", width: 150, crop: "scale")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(150).Crop("scale")).BuildImageTag("docs/camera.jpg")
```

```dart
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.scale().width(150)));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setWidth(150).setCrop("scale")).generate("docs/camera.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().width(150).crop("scale")).generate("docs/camera.jpg");
```

```flutter
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.scale().width(150)));
```

```kotlin
cloudinary.image {
	publicId("docs/camera.jpg")
	 resize(Resize.scale() { width(150) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera.jpg", {width: 150, crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150));
```

![Video scaled to a width of 150 pixels](https://res.cloudinary.com/demo/video/upload/c_scale,w_150/guy_woman_mobile.mp4 "width:150")

```nodejs
cloudinary.video("guy_woman_mobile", {width: 150, crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(150));
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(150));
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(150));
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(150));
```

```python
CloudinaryVideo("guy_woman_mobile").video(width=150, crop="scale")
```

```php
use Cloudinary\Transformation\Resize;

(new VideoTag('guy_woman_mobile.mp4'))
	->resize(Resize::scale()->width(150));
```

```java
cloudinary.url().transformation(new Transformation().width(150).crop("scale")).videoTag("guy_woman_mobile");
```

```ruby
cl_video_tag("guy_woman_mobile", width: 150, crop: "scale")
```

```csharp
cloudinary.Api.UrlVideoUp.Transform(new Transformation().Width(150).Crop("scale")).BuildVideoTag("guy_woman_mobile")
```

```dart
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.scale().width(150)));
```

```swift
cloudinary.createUrl().setResourceType("video").setTransformation(CLDTransformation().setWidth(150).setCrop("scale")).generate("guy_woman_mobile.mp4")
```

```android
MediaManager.get().url().transformation(new Transformation().width(150).crop("scale")).resourceType("video").generate("guy_woman_mobile.mp4");
```

```flutter
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.scale().width(150)));
```

```kotlin
cloudinary.video {
	publicId("guy_woman_mobile.mp4")
	 resize(Resize.scale() { width(150) }) 
}.generate()
```

```jquery
$.cloudinary.video("guy_woman_mobile", {width: 150, crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(150));
```

### Example 2: Scale without maintaining aspect ratio

Scale the camera image to a width and height of 150 pixels without maintaining the aspect ratio:

![Image scaled to a width and height of 150 pixels](https://res.cloudinary.com/demo/image/upload/c_scale,h_150,w_150/docs/camera.jpg "width:150")

```nodejs
cloudinary.image("docs/camera.jpg", {height: 150, width: 150, crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150).height(150));
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150).height(150));
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150).height(150));
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150).height(150));
```

```python
CloudinaryImage("docs/camera.jpg").image(height=150, width=150, crop="scale")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera.jpg'))
	->resize(Resize::scale()->width(150)
->height(150));
```

```java
cloudinary.url().transformation(new Transformation().height(150).width(150).crop("scale")).imageTag("docs/camera.jpg");
```

```ruby
cl_image_tag("docs/camera.jpg", height: 150, width: 150, crop: "scale")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Height(150).Width(150).Crop("scale")).BuildImageTag("docs/camera.jpg")
```

```dart
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.scale().width(150)
.height(150)));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setHeight(150).setWidth(150).setCrop("scale")).generate("docs/camera.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().height(150).width(150).crop("scale")).generate("docs/camera.jpg");
```

```flutter
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.scale().width(150)
.height(150)));
```

```kotlin
cloudinary.image {
	publicId("docs/camera.jpg")
	 resize(Resize.scale() { width(150)
 height(150) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera.jpg", {height: 150, width: 150, crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(150).height(150));
```

![Video scaled to a width and height of 150 pixels](https://res.cloudinary.com/demo/video/upload/c_scale,h_150,w_150/guy_woman_mobile.mp4 "width:150")

```nodejs
cloudinary.video("guy_woman_mobile", {height: 150, width: 150, crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(150).height(150)
);
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(150).height(150)
);
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(150).height(150)
);
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(150).height(150)
);
```

```python
CloudinaryVideo("guy_woman_mobile").video(height=150, width=150, crop="scale")
```

```php
use Cloudinary\Transformation\Resize;

(new VideoTag('guy_woman_mobile.mp4'))
	->resize(Resize::scale()->width(150)
->height(150));
```

```java
cloudinary.url().transformation(new Transformation().height(150).width(150).crop("scale")).videoTag("guy_woman_mobile");
```

```ruby
cl_video_tag("guy_woman_mobile", height: 150, width: 150, crop: "scale")
```

```csharp
cloudinary.Api.UrlVideoUp.Transform(new Transformation().Height(150).Width(150).Crop("scale")).BuildVideoTag("guy_woman_mobile")
```

```dart
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.scale().width(150)
.height(150)));
```

```swift
cloudinary.createUrl().setResourceType("video").setTransformation(CLDTransformation().setHeight(150).setWidth(150).setCrop("scale")).generate("guy_woman_mobile.mp4")
```

```android
MediaManager.get().url().transformation(new Transformation().height(150).width(150).crop("scale")).resourceType("video").generate("guy_woman_mobile.mp4");
```

```flutter
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.scale().width(150)
.height(150)));
```

```kotlin
cloudinary.video {
	publicId("guy_woman_mobile.mp4")
	 resize(Resize.scale() { width(150)
 height(150) }) 
}.generate()
```

```jquery
$.cloudinary.video("guy_woman_mobile", {height: 150, width: 150, crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(150).height(150)
);
```

### Example 3: Scale by a percentage

Scale the camera image to a width of 25% (maintains the aspect ratio by default):

![Image scaled to a width of 25%](https://res.cloudinary.com/demo/image/upload/c_scale,w_0.25/docs/camera.jpg "width:320")

```nodejs
cloudinary.image("docs/camera.jpg", {width: "0.25", crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(0.25));
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(0.25));
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(0.25));
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(0.25));
```

```python
CloudinaryImage("docs/camera.jpg").image(width="0.25", crop="scale")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera.jpg'))
	->resize(Resize::scale()->width(0.25));
```

```java
cloudinary.url().transformation(new Transformation().width(0.25).crop("scale")).imageTag("docs/camera.jpg");
```

```ruby
cl_image_tag("docs/camera.jpg", width: 0.25, crop: "scale")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(0.25).Crop("scale")).BuildImageTag("docs/camera.jpg")
```

```dart
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.scale().width(0.25)));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setWidth(0.25).setCrop("scale")).generate("docs/camera.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().width(0.25).crop("scale")).generate("docs/camera.jpg");
```

```flutter
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.scale().width(0.25)));
```

```kotlin
cloudinary.image {
	publicId("docs/camera.jpg")
	 resize(Resize.scale() { width(0.25F) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera.jpg", {width: "0.25", crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(scale().width(0.25));
```

![Video scaled to a width of 25%](https://res.cloudinary.com/demo/video/upload/c_scale,w_0.25/guy_woman_mobile.mp4 "width:480")

```nodejs
cloudinary.video("guy_woman_mobile", {width: "0.25", crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(0.25));
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(0.25));
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(0.25));
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(0.25));
```

```python
CloudinaryVideo("guy_woman_mobile").video(width="0.25", crop="scale")
```

```php
use Cloudinary\Transformation\Resize;

(new VideoTag('guy_woman_mobile.mp4'))
	->resize(Resize::scale()->width(0.25));
```

```java
cloudinary.url().transformation(new Transformation().width(0.25).crop("scale")).videoTag("guy_woman_mobile");
```

```ruby
cl_video_tag("guy_woman_mobile", width: 0.25, crop: "scale")
```

```csharp
cloudinary.Api.UrlVideoUp.Transform(new Transformation().Width(0.25).Crop("scale")).BuildVideoTag("guy_woman_mobile")
```

```dart
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.scale().width(0.25)));
```

```swift
cloudinary.createUrl().setResourceType("video").setTransformation(CLDTransformation().setWidth(0.25).setCrop("scale")).generate("guy_woman_mobile.mp4")
```

```android
MediaManager.get().url().transformation(new Transformation().width(0.25).crop("scale")).resourceType("video").generate("guy_woman_mobile.mp4");
```

```flutter
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.scale().width(0.25)));
```

```kotlin
cloudinary.video {
	publicId("guy_woman_mobile.mp4")
	 resize(Resize.scale() { width(0.25F) }) 
}.generate()
```

```jquery
$.cloudinary.video("guy_woman_mobile", {width: "0.25", crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(scale().width(0.25));
```

### Example 4: Scale by setting the aspect ratio and width

Scale the camera image to a width of 100, changing the aspect ratio to 1:2:

![Image scaled using aspect ratio](https://res.cloudinary.com/demo/image/upload/ar_1:2,c_scale,w_100/docs/camera.jpg "width:100")

```nodejs
cloudinary.image("docs/camera.jpg", {aspect_ratio: "1:2", width: 100, crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  scale().width(100).aspectRatio("1:2")
);
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  scale().width(100).aspectRatio("1:2")
);
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  scale().width(100).aspectRatio("1:2")
);
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  scale().width(100).aspectRatio("1:2")
);
```

```python
CloudinaryImage("docs/camera.jpg").image(aspect_ratio="1:2", width=100, crop="scale")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera.jpg'))
	->resize(Resize::scale()->width(100)
->aspectRatio("1:2"));
```

```java
cloudinary.url().transformation(new Transformation().aspectRatio("1:2").width(100).crop("scale")).imageTag("docs/camera.jpg");
```

```ruby
cl_image_tag("docs/camera.jpg", aspect_ratio: "1:2", width: 100, crop: "scale")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().AspectRatio("1:2").Width(100).Crop("scale")).BuildImageTag("docs/camera.jpg")
```

```dart
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.scale().width(100)
.aspectRatio("1:2")));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setAspectRatio("1:2").setWidth(100).setCrop("scale")).generate("docs/camera.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().aspectRatio("1:2").width(100).crop("scale")).generate("docs/camera.jpg");
```

```flutter
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.scale().width(100)
.aspectRatio("1:2")));
```

```kotlin
cloudinary.image {
	publicId("docs/camera.jpg")
	 resize(Resize.scale() { width(100)
 aspectRatio("1:2") }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera.jpg", {aspect_ratio: "1:2", width: 100, crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  scale().width(100).aspectRatio("1:2")
);
```

![Video scaled using aspect ratio](https://res.cloudinary.com/demo/video/upload/ar_1:2,c_scale,w_100/guy_woman_mobile.mp4 "width:100")

```nodejs
cloudinary.video("guy_woman_mobile", {aspect_ratio: "1:2", width: 100, crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(100).aspectRatio("1:2")
);
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(100).aspectRatio("1:2")
);
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(100).aspectRatio("1:2")
);
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(100).aspectRatio("1:2")
);
```

```python
CloudinaryVideo("guy_woman_mobile").video(aspect_ratio="1:2", width=100, crop="scale")
```

```php
use Cloudinary\Transformation\Resize;

(new VideoTag('guy_woman_mobile.mp4'))
	->resize(Resize::scale()->width(100)
->aspectRatio("1:2"));
```

```java
cloudinary.url().transformation(new Transformation().aspectRatio("1:2").width(100).crop("scale")).videoTag("guy_woman_mobile");
```

```ruby
cl_video_tag("guy_woman_mobile", aspect_ratio: "1:2", width: 100, crop: "scale")
```

```csharp
cloudinary.Api.UrlVideoUp.Transform(new Transformation().AspectRatio("1:2").Width(100).Crop("scale")).BuildVideoTag("guy_woman_mobile")
```

```dart
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.scale().width(100)
.aspectRatio("1:2")));
```

```swift
cloudinary.createUrl().setResourceType("video").setTransformation(CLDTransformation().setAspectRatio("1:2").setWidth(100).setCrop("scale")).generate("guy_woman_mobile.mp4")
```

```android
MediaManager.get().url().transformation(new Transformation().aspectRatio("1:2").width(100).crop("scale")).resourceType("video").generate("guy_woman_mobile.mp4");
```

```flutter
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.scale().width(100)
.aspectRatio("1:2")));
```

```kotlin
cloudinary.video {
	publicId("guy_woman_mobile.mp4")
	 resize(Resize.scale() { width(100)
 aspectRatio("1:2") }) 
}.generate()
```

```jquery
$.cloudinary.video("guy_woman_mobile", {aspect_ratio: "1:2", width: 100, crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  scale().width(100).aspectRatio("1:2")
);
```

### Example 5: Scale in one dimension ignoring the aspect ratio

You can override the default aspect ratio retention by including the [ignore_aspect_ratio](transformation_reference#fl_ignore_aspect_ratio) flag. For example, scale the image to a height of 150, ignoring the aspect ratio:

![Image scaled ignoring aspect ratio](https://res.cloudinary.com/demo/image/upload/c_scale,fl_ignore_aspect_ratio,h_150/docs/camera-640.jpg "width:640")

```nodejs
cloudinary.image("docs/camera-640.jpg", {flags: "ignore_aspect_ratio", height: 150, crop: "scale"})
```

```react
import { scale } from "@cloudinary/url-gen/actions/resize";
import { ignoreInitialAspectRatio } from "@cloudinary/url-gen/qualifiers/aspectRatio";

new CloudinaryImage("docs/camera-640.jpg").resize(
  scale()
    .height(150)
    .aspectRatio(ignoreInitialAspectRatio())
);
```

```vue
import { scale } from "@cloudinary/url-gen/actions/resize";
import { ignoreInitialAspectRatio } from "@cloudinary/url-gen/qualifiers/aspectRatio";

new CloudinaryImage("docs/camera-640.jpg").resize(
  scale()
    .height(150)
    .aspectRatio(ignoreInitialAspectRatio())
);
```

```angular
import { scale } from "@cloudinary/url-gen/actions/resize";
import { ignoreInitialAspectRatio } from "@cloudinary/url-gen/qualifiers/aspectRatio";

new CloudinaryImage("docs/camera-640.jpg").resize(
  scale()
    .height(150)
    .aspectRatio(ignoreInitialAspectRatio())
);
```

```js
import { scale } from "@cloudinary/url-gen/actions/resize";
import { ignoreInitialAspectRatio } from "@cloudinary/url-gen/qualifiers/aspectRatio";

new CloudinaryImage("docs/camera-640.jpg").resize(
  scale()
    .height(150)
    .aspectRatio(ignoreInitialAspectRatio())
);
```

```python
CloudinaryImage("docs/camera-640.jpg").image(flags="ignore_aspect_ratio", height=150, crop="scale")
```

```php
use Cloudinary\Transformation\Resize;
use Cloudinary\Transformation\AspectRatio;

(new ImageTag('docs/camera-640.jpg'))
	->resize(Resize::scale()->height(150)
	->aspectRatio(
	AspectRatio::ignoreInitialAspectRatio())
	);
```

```java
cloudinary.url().transformation(new Transformation().flags("ignore_aspect_ratio").height(150).crop("scale")).imageTag("docs/camera-640.jpg");
```

```ruby
cl_image_tag("docs/camera-640.jpg", flags: "ignore_aspect_ratio", height: 150, crop: "scale")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Flags("ignore_aspect_ratio").Height(150).Crop("scale")).BuildImageTag("docs/camera-640.jpg")
```

```dart
cloudinary.image('docs/camera-640.jpg').transformation(Transformation()
	.resize(Resize.scale().height(150)
	.aspectRatio(
	AspectRatio.ignoreInitialAspectRatio())
	));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setFlags("ignore_aspect_ratio").setHeight(150).setCrop("scale")).generate("docs/camera-640.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().flags("ignore_aspect_ratio").height(150).crop("scale")).generate("docs/camera-640.jpg");
```

```flutter
cloudinary.image('docs/camera-640.jpg').transformation(Transformation()
	.resize(Resize.scale().height(150)
	.aspectRatio(
	AspectRatio.ignoreInitialAspectRatio())
	));
```

```kotlin
cloudinary.image {
	publicId("docs/camera-640.jpg")
	 resize(Resize.scale() { height(150)
	 aspectRatio(
	AspectRatio.ignoreInitialAspectRatio())
	 }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera-640.jpg", {flags: "ignore_aspect_ratio", height: 150, crop: "scale"})
```

```react_native
import { scale } from "@cloudinary/url-gen/actions/resize";
import { ignoreInitialAspectRatio } from "@cloudinary/url-gen/qualifiers/aspectRatio";

new CloudinaryImage("docs/camera-640.jpg").resize(
  scale()
    .height(150)
    .aspectRatio(ignoreInitialAspectRatio())
);
```

> **TIP**: The `scale` mode can be used to scale up or scale down an image, however when scaling up, the image often loses clarity. To retain clarity while upscaling an image, consider [upscaling with super resolution](image_upscaling_and_downscaling#upscaling_with_super_resolution).

## fit

The `fit` resize mode resizes the image so that it takes up as much space as possible within a bounding box defined by the specified dimensions. The original aspect ratio is retained and all of the original image is visible. 

**See full syntax**: [c_fit](transformation_reference#c_fit) in the _Transformation Reference_.

### Example 1: Fit the image inside a square bounding box

Resize the camera image to fit within a width and height of 250 pixels while retaining the aspect ratio:

![Image fit to a width and height of 250 pixels](https://res.cloudinary.com/demo/image/upload/c_fit,h_250,w_250/docs/camera.jpg "width: 250")

```nodejs
cloudinary.image("docs/camera.jpg", {height: 250, width: 250, crop: "fit"})
```

```react
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(fit().width(250).height(250));
```

```vue
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(fit().width(250).height(250));
```

```angular
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(fit().width(250).height(250));
```

```js
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(fit().width(250).height(250));
```

```python
CloudinaryImage("docs/camera.jpg").image(height=250, width=250, crop="fit")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera.jpg'))
	->resize(Resize::fit()->width(250)
->height(250));
```

```java
cloudinary.url().transformation(new Transformation().height(250).width(250).crop("fit")).imageTag("docs/camera.jpg");
```

```ruby
cl_image_tag("docs/camera.jpg", height: 250, width: 250, crop: "fit")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Height(250).Width(250).Crop("fit")).BuildImageTag("docs/camera.jpg")
```

```dart
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.fit().width(250)
.height(250)));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setHeight(250).setWidth(250).setCrop("fit")).generate("docs/camera.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().height(250).width(250).crop("fit")).generate("docs/camera.jpg");
```

```flutter
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.fit().width(250)
.height(250)));
```

```kotlin
cloudinary.image {
	publicId("docs/camera.jpg")
	 resize(Resize.fit() { width(250)
 height(250) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera.jpg", {height: 250, width: 250, crop: "fit"})
```

```react_native
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(fit().width(250).height(250));
```

![Video fit to a width and height of 250 pixels](https://res.cloudinary.com/demo/video/upload/c_fit,h_250,w_250/guy_woman_mobile.mp4 "width: 250")

```nodejs
cloudinary.video("guy_woman_mobile", {height: 250, width: 250, crop: "fit"})
```

```react
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().width(250).height(250)
);
```

```vue
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().width(250).height(250)
);
```

```angular
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().width(250).height(250)
);
```

```js
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().width(250).height(250)
);
```

```python
CloudinaryVideo("guy_woman_mobile").video(height=250, width=250, crop="fit")
```

```php
use Cloudinary\Transformation\Resize;

(new VideoTag('guy_woman_mobile.mp4'))
	->resize(Resize::fit()->width(250)
->height(250));
```

```java
cloudinary.url().transformation(new Transformation().height(250).width(250).crop("fit")).videoTag("guy_woman_mobile");
```

```ruby
cl_video_tag("guy_woman_mobile", height: 250, width: 250, crop: "fit")
```

```csharp
cloudinary.Api.UrlVideoUp.Transform(new Transformation().Height(250).Width(250).Crop("fit")).BuildVideoTag("guy_woman_mobile")
```

```dart
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.fit().width(250)
.height(250)));
```

```swift
cloudinary.createUrl().setResourceType("video").setTransformation(CLDTransformation().setHeight(250).setWidth(250).setCrop("fit")).generate("guy_woman_mobile.mp4")
```

```android
MediaManager.get().url().transformation(new Transformation().height(250).width(250).crop("fit")).resourceType("video").generate("guy_woman_mobile.mp4");
```

```flutter
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.fit().width(250)
.height(250)));
```

```kotlin
cloudinary.video {
	publicId("guy_woman_mobile.mp4")
	 resize(Resize.fit() { width(250)
 height(250) }) 
}.generate()
```

```jquery
$.cloudinary.video("guy_woman_mobile", {height: 250, width: 250, crop: "fit"})
```

```react_native
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().width(250).height(250)
);
```

### Example 2: Use aspect ratio to define a bounding box

Resize the camera image to fit within a 150-pixel square defined by aspect ratio and height:

![Image fit to a 150-pixel square](https://res.cloudinary.com/demo/image/upload/ar_1.0,c_fit,h_150/docs/camera.jpg "width: 150")

```nodejs
cloudinary.image("docs/camera.jpg", {aspect_ratio: "1.0", height: 150, crop: "fit"})
```

```react
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  fit().height(150).aspectRatio("1.0")
);
```

```vue
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  fit().height(150).aspectRatio("1.0")
);
```

```angular
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  fit().height(150).aspectRatio("1.0")
);
```

```js
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  fit().height(150).aspectRatio("1.0")
);
```

```python
CloudinaryImage("docs/camera.jpg").image(aspect_ratio="1.0", height=150, crop="fit")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera.jpg'))
	->resize(Resize::fit()->height(150)
->aspectRatio(1.0));
```

```java
cloudinary.url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("fit")).imageTag("docs/camera.jpg");
```

```ruby
cl_image_tag("docs/camera.jpg", aspect_ratio: "1.0", height: 150, crop: "fit")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().AspectRatio("1.0").Height(150).Crop("fit")).BuildImageTag("docs/camera.jpg")
```

```dart
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.fit().height(150)
.aspectRatio('1.0')));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setAspectRatio("1.0").setHeight(150).setCrop("fit")).generate("docs/camera.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("fit")).generate("docs/camera.jpg");
```

```flutter
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.fit().height(150)
.aspectRatio('1.0')));
```

```kotlin
cloudinary.image {
	publicId("docs/camera.jpg")
	 resize(Resize.fit() { height(150)
 aspectRatio(1.0F) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera.jpg", {aspect_ratio: "1.0", height: 150, crop: "fit"})
```

```react_native
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  fit().height(150).aspectRatio("1.0")
);
```

![Video fit to a 150-pixel square](https://res.cloudinary.com/demo/video/upload/ar_1.0,c_fit,h_150/guy_woman_mobile.mp4 "width: 150")

```nodejs
cloudinary.video("guy_woman_mobile", {aspect_ratio: "1.0", height: 150, crop: "fit"})
```

```react
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().height(150).aspectRatio("1.0")
);
```

```vue
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().height(150).aspectRatio("1.0")
);
```

```angular
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().height(150).aspectRatio("1.0")
);
```

```js
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().height(150).aspectRatio("1.0")
);
```

```python
CloudinaryVideo("guy_woman_mobile").video(aspect_ratio="1.0", height=150, crop="fit")
```

```php
use Cloudinary\Transformation\Resize;

(new VideoTag('guy_woman_mobile.mp4'))
	->resize(Resize::fit()->height(150)
->aspectRatio(1.0));
```

```java
cloudinary.url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("fit")).videoTag("guy_woman_mobile");
```

```ruby
cl_video_tag("guy_woman_mobile", aspect_ratio: "1.0", height: 150, crop: "fit")
```

```csharp
cloudinary.Api.UrlVideoUp.Transform(new Transformation().AspectRatio("1.0").Height(150).Crop("fit")).BuildVideoTag("guy_woman_mobile")
```

```dart
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.fit().height(150)
.aspectRatio('1.0')));
```

```swift
cloudinary.createUrl().setResourceType("video").setTransformation(CLDTransformation().setAspectRatio("1.0").setHeight(150).setCrop("fit")).generate("guy_woman_mobile.mp4")
```

```android
MediaManager.get().url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("fit")).resourceType("video").generate("guy_woman_mobile.mp4");
```

```flutter
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.fit().height(150)
.aspectRatio('1.0')));
```

```kotlin
cloudinary.video {
	publicId("guy_woman_mobile.mp4")
	 resize(Resize.fit() { height(150)
 aspectRatio(1.0F) }) 
}.generate()
```

```jquery
$.cloudinary.video("guy_woman_mobile", {aspect_ratio: "1.0", height: 150, crop: "fit"})
```

```react_native
import { fit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  fit().height(150).aspectRatio("1.0")
);
```## limit

The `limit` resize mode behaves the same as the `fit` mode but only if the original image is larger than the specified limit (width and height), in which case the image is scaled down so that it takes up as much space as possible within a bounding box defined by the specified dimensions. The original aspect ratio is retained and all of the original image is visible. This mode doesn't scale up the image if your requested dimensions are larger than the original image's.

**See full syntax**: [c_limit](transformation_reference#c_limit) in the _Transformation Reference_.

  
### Example 1: Limit the size of the image to a square bounding box

Limit the camera image to a width and height of 250 pixels while retaining the aspect ratio:

![image limited to a width and height of 250 pixels](https://res.cloudinary.com/demo/image/upload/c_limit,h_250,w_250/docs/camera.jpg "width:250")

```nodejs
cloudinary.image("docs/camera.jpg", {height: 250, width: 250, crop: "limit"})
```

```react
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().width(250).height(250)
);
```

```vue
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().width(250).height(250)
);
```

```angular
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().width(250).height(250)
);
```

```js
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().width(250).height(250)
);
```

```python
CloudinaryImage("docs/camera.jpg").image(height=250, width=250, crop="limit")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera.jpg'))
	->resize(Resize::limitFit()->width(250)
->height(250));
```

```java
cloudinary.url().transformation(new Transformation().height(250).width(250).crop("limit")).imageTag("docs/camera.jpg");
```

```ruby
cl_image_tag("docs/camera.jpg", height: 250, width: 250, crop: "limit")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Height(250).Width(250).Crop("limit")).BuildImageTag("docs/camera.jpg")
```

```dart
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.limitFit().width(250)
.height(250)));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setHeight(250).setWidth(250).setCrop("limit")).generate("docs/camera.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().height(250).width(250).crop("limit")).generate("docs/camera.jpg");
```

```flutter
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.limitFit().width(250)
.height(250)));
```

```kotlin
cloudinary.image {
	publicId("docs/camera.jpg")
	 resize(Resize.limitFit() { width(250)
 height(250) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera.jpg", {height: 250, width: 250, crop: "limit"})
```

```react_native
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().width(250).height(250)
);
```

![image limited to a width and height of 250 pixels](https://res.cloudinary.com/demo/video/upload/c_limit,h_250,w_250/guy_woman_mobile.mp4 "width:250")

```nodejs
cloudinary.video("guy_woman_mobile", {height: 250, width: 250, crop: "limit"})
```

```react
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().width(250).height(250)
);
```

```vue
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().width(250).height(250)
);
```

```angular
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().width(250).height(250)
);
```

```js
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().width(250).height(250)
);
```

```python
CloudinaryVideo("guy_woman_mobile").video(height=250, width=250, crop="limit")
```

```php
use Cloudinary\Transformation\Resize;

(new VideoTag('guy_woman_mobile.mp4'))
	->resize(Resize::limitFit()->width(250)
->height(250));
```

```java
cloudinary.url().transformation(new Transformation().height(250).width(250).crop("limit")).videoTag("guy_woman_mobile");
```

```ruby
cl_video_tag("guy_woman_mobile", height: 250, width: 250, crop: "limit")
```

```csharp
cloudinary.Api.UrlVideoUp.Transform(new Transformation().Height(250).Width(250).Crop("limit")).BuildVideoTag("guy_woman_mobile")
```

```dart
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.limitFit().width(250)
.height(250)));
```

```swift
cloudinary.createUrl().setResourceType("video").setTransformation(CLDTransformation().setHeight(250).setWidth(250).setCrop("limit")).generate("guy_woman_mobile.mp4")
```

```android
MediaManager.get().url().transformation(new Transformation().height(250).width(250).crop("limit")).resourceType("video").generate("guy_woman_mobile.mp4");
```

```flutter
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.limitFit().width(250)
.height(250)));
```

```kotlin
cloudinary.video {
	publicId("guy_woman_mobile.mp4")
	 resize(Resize.limitFit() { width(250)
 height(250) }) 
}.generate()
```

```jquery
$.cloudinary.video("guy_woman_mobile", {height: 250, width: 250, crop: "limit"})
```

```react_native
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().width(250).height(250)
);
```

### Example 2: Use aspect ratio to define a limiting bounding box

Limit the camera image to a 150-pixel square defined by aspect ratio and height:

![image limited to a 150-pixel square](https://res.cloudinary.com/demo/image/upload/ar_1.0,c_limit,h_150/docs/camera.jpg "width:150")

```nodejs
cloudinary.image("docs/camera.jpg", {aspect_ratio: "1.0", height: 150, crop: "limit"})
```

```react
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

```vue
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

```angular
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

```js
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

```python
CloudinaryImage("docs/camera.jpg").image(aspect_ratio="1.0", height=150, crop="limit")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera.jpg'))
	->resize(Resize::limitFit()->height(150)
->aspectRatio(1.0));
```

```java
cloudinary.url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("limit")).imageTag("docs/camera.jpg");
```

```ruby
cl_image_tag("docs/camera.jpg", aspect_ratio: "1.0", height: 150, crop: "limit")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().AspectRatio("1.0").Height(150).Crop("limit")).BuildImageTag("docs/camera.jpg")
```

```dart
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.limitFit().height(150)
.aspectRatio('1.0')));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setAspectRatio("1.0").setHeight(150).setCrop("limit")).generate("docs/camera.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("limit")).generate("docs/camera.jpg");
```

```flutter
cloudinary.image('docs/camera.jpg').transformation(Transformation()
	.resize(Resize.limitFit().height(150)
.aspectRatio('1.0')));
```

```kotlin
cloudinary.image {
	publicId("docs/camera.jpg")
	 resize(Resize.limitFit() { height(150)
 aspectRatio(1.0F) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera.jpg", {aspect_ratio: "1.0", height: 150, crop: "limit"})
```

```react_native
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera.jpg").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

![image limited to a 150-pixel square](https://res.cloudinary.com/demo/video/upload/ar_1.0,c_limit,h_150/guy_woman_mobile.mp4 "width:150")

```nodejs
cloudinary.video("guy_woman_mobile", {aspect_ratio: "1.0", height: 150, crop: "limit"})
```

```react
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

```vue
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

```angular
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

```js
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```

```python
CloudinaryVideo("guy_woman_mobile").video(aspect_ratio="1.0", height=150, crop="limit")
```

```php
use Cloudinary\Transformation\Resize;

(new VideoTag('guy_woman_mobile.mp4'))
	->resize(Resize::limitFit()->height(150)
->aspectRatio(1.0));
```

```java
cloudinary.url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("limit")).videoTag("guy_woman_mobile");
```

```ruby
cl_video_tag("guy_woman_mobile", aspect_ratio: "1.0", height: 150, crop: "limit")
```

```csharp
cloudinary.Api.UrlVideoUp.Transform(new Transformation().AspectRatio("1.0").Height(150).Crop("limit")).BuildVideoTag("guy_woman_mobile")
```

```dart
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.limitFit().height(150)
.aspectRatio('1.0')));
```

```swift
cloudinary.createUrl().setResourceType("video").setTransformation(CLDTransformation().setAspectRatio("1.0").setHeight(150).setCrop("limit")).generate("guy_woman_mobile.mp4")
```

```android
MediaManager.get().url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("limit")).resourceType("video").generate("guy_woman_mobile.mp4");
```

```flutter
cloudinary.video('guy_woman_mobile.mp4').transformation(Transformation()
	.resize(Resize.limitFit().height(150)
.aspectRatio('1.0')));
```

```kotlin
cloudinary.video {
	publicId("guy_woman_mobile.mp4")
	 resize(Resize.limitFit() { height(150)
 aspectRatio(1.0F) }) 
}.generate()
```

```jquery
$.cloudinary.video("guy_woman_mobile", {aspect_ratio: "1.0", height: 150, crop: "limit"})
```

```react_native
import { limitFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryVideo("guy_woman_mobile.mp4").resize(
  limitFit().height(150).aspectRatio("1.0")
);
```
## mfit (minimum fit)

The `mfit` resize mode behaves the same as the `fit` mode but only if the original image is smaller than the specified minimum (width and height), in which case the image is scaled up so that it takes up as much space as possible within a bounding box defined by the specified dimensions. The original aspect ratio is retained and all of the original image is visible. This mode doesn't scale down the image if your requested dimensions are smaller than the original image's.

**See full syntax**: [c_mfit](transformation_reference#c_mfit) in the _Transformation Reference_.

### Example 1: Ensure an image fits a minimum bounding box

Fit the `camera-640` image (640 x 427 pixels) to a minimum width and height of 250 pixels while retaining the aspect ratio. This results in the original larger image being delivered:

![Image mfit to a width and height of 250 pixels](https://res.cloudinary.com/demo/image/upload/c_mfit,h_250,w_250/docs/camera-640.jpg "width:250")

```nodejs
cloudinary.image("docs/camera-640.jpg", {height: 250, width: 250, crop: "mfit"})
```

```react
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-640.jpg").resize(
  minimumFit().width(250).height(250)
);
```

```vue
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-640.jpg").resize(
  minimumFit().width(250).height(250)
);
```

```angular
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-640.jpg").resize(
  minimumFit().width(250).height(250)
);
```

```js
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-640.jpg").resize(
  minimumFit().width(250).height(250)
);
```

```python
CloudinaryImage("docs/camera-640.jpg").image(height=250, width=250, crop="mfit")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera-640.jpg'))
	->resize(Resize::minimumFit()->width(250)
->height(250));
```

```java
cloudinary.url().transformation(new Transformation().height(250).width(250).crop("mfit")).imageTag("docs/camera-640.jpg");
```

```ruby
cl_image_tag("docs/camera-640.jpg", height: 250, width: 250, crop: "mfit")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Height(250).Width(250).Crop("mfit")).BuildImageTag("docs/camera-640.jpg")
```

```dart
cloudinary.image('docs/camera-640.jpg').transformation(Transformation()
	.resize(Resize.minimumFit().width(250)
.height(250)));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setHeight(250).setWidth(250).setCrop("mfit")).generate("docs/camera-640.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().height(250).width(250).crop("mfit")).generate("docs/camera-640.jpg");
```

```flutter
cloudinary.image('docs/camera-640.jpg').transformation(Transformation()
	.resize(Resize.minimumFit().width(250)
.height(250)));
```

```kotlin
cloudinary.image {
	publicId("docs/camera-640.jpg")
	 resize(Resize.minimumFit() { width(250)
 height(250) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera-640.jpg", {height: 250, width: 250, crop: "mfit"})
```

```react_native
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-640.jpg").resize(
  minimumFit().width(250).height(250)
);
```

### Example 2: Use aspect ratio to define a minimum size

Scale up the 100-pixel wide `camera-100` image to fit a 150-pixel square defined by aspect ratio and height.

![Image mfit to a 150-pixel square](https://res.cloudinary.com/demo/image/upload/ar_1.0,c_mfit,h_150/docs/camera-100.jpg "width:150")

```nodejs
cloudinary.image("docs/camera-100.jpg", {aspect_ratio: "1.0", height: 150, crop: "mfit"})
```

```react
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-100.jpg").resize(
  minimumFit().height(150).aspectRatio("1.0")
);
```

```vue
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-100.jpg").resize(
  minimumFit().height(150).aspectRatio("1.0")
);
```

```angular
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-100.jpg").resize(
  minimumFit().height(150).aspectRatio("1.0")
);
```

```js
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-100.jpg").resize(
  minimumFit().height(150).aspectRatio("1.0")
);
```

```python
CloudinaryImage("docs/camera-100.jpg").image(aspect_ratio="1.0", height=150, crop="mfit")
```

```php
use Cloudinary\Transformation\Resize;

(new ImageTag('docs/camera-100.jpg'))
	->resize(Resize::minimumFit()->height(150)
->aspectRatio(1.0));
```

```java
cloudinary.url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("mfit")).imageTag("docs/camera-100.jpg");
```

```ruby
cl_image_tag("docs/camera-100.jpg", aspect_ratio: "1.0", height: 150, crop: "mfit")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().AspectRatio("1.0").Height(150).Crop("mfit")).BuildImageTag("docs/camera-100.jpg")
```

```dart
cloudinary.image('docs/camera-100.jpg').transformation(Transformation()
	.resize(Resize.minimumFit().height(150)
.aspectRatio('1.0')));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setAspectRatio("1.0").setHeight(150).setCrop("mfit")).generate("docs/camera-100.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().aspectRatio("1.0").height(150).crop("mfit")).generate("docs/camera-100.jpg");
```

```flutter
cloudinary.image('docs/camera-100.jpg').transformation(Transformation()
	.resize(Resize.minimumFit().height(150)
.aspectRatio('1.0')));
```

```kotlin
cloudinary.image {
	publicId("docs/camera-100.jpg")
	 resize(Resize.minimumFit() { height(150)
 aspectRatio(1.0F) }) 
}.generate()
```

```jquery
$.cloudinary.image("docs/camera-100.jpg", {aspect_ratio: "1.0", height: 150, crop: "mfit"})
```

```react_native
import { minimumFit } from "@cloudinary/url-gen/actions/resize";

new CloudinaryImage("docs/camera-100.jpg").resize(
  minimumFit().height(150).aspectRatio("1.0")
);
```

> **READING**:
>
> * [Image padding modes](image_padding_modes): Detailed examples of `pad`, `lpad`, and `mpad`.

> * [Image crop modes](image_crop_modes): Detailed examples of `fill`, `lfill`, `fill_pad`, `crop`, `thumb`, `auto`, and `auto_pad`.

> * [Resizing and cropping interactive demo](resizing_and_cropping#resizing_and_cropping_interactive_demo): Try out all crop and resize modes interactively.
