Documentation

Image Transformations

The Get Pronto SDK provides a powerful, chainable API for transforming images. You can resize, crop, apply effects, and optimize images for different use cases.

Getting Started

To transform an image, use the transform() method from the images API:

typescript
import GetProntoClient from "@getpronto-io/getpronto-sdk";

const client = new GetProntoClient({
  apiKey: "YOUR_API_KEY"
});

// Start a transformation chain
const transformer = client.images.transform("file_id");

Transformation Methods

All transformation methods can be chained together. The transformations are applied in the order they are specified.

resize()

Resize the image to specified dimensions

Parameters

NameTypeDescription
widthnumberTarget width in pixels (1-5000)
heightnumberTarget height in pixels (1-5000)
fitstringHow the image should fit: 'cover' (default), 'contain', 'fill', 'inside', 'outside'

Example

typescript
// Resize to 800x600 using contain mode
client.images
  .transform(fileId)
  .resize(800, 600, "contain")

Returns: ImageTransformer

quality()

Set the output quality for JPEG and WebP images

Parameters

NameTypeDescription
valuenumberQuality value (1-100)

Example

typescript
// Set quality to 90%
client.images
  .transform(fileId)
  .quality(90)

Returns: ImageTransformer

blur()

Apply Gaussian blur to the image

Parameters

NameTypeDescription
valuenumberBlur radius (0.3-1000)

Example

typescript
// Apply blur with radius 5
client.images
  .transform(fileId)
  .blur(5)

Returns: ImageTransformer

sharpen()

Apply sharpening to the image

Example

typescript
// Apply sharpening
client.images
  .transform(fileId)
  .sharpen()

Returns: ImageTransformer

grayscale()

Convert the image to grayscale

Example

typescript
// Convert to grayscale
client.images
  .transform(fileId)
  .grayscale()

Returns: ImageTransformer

rotate()

Rotate the image by specified degrees

Parameters

NameTypeDescription
degreesnumberRotation angle (-360 to 360)

Example

typescript
// Rotate 90 degrees clockwise
client.images
  .transform(fileId)
  .rotate(90)

Returns: ImageTransformer

border()

Add a border to the image

Parameters

NameTypeDescription
widthnumberBorder width in pixels
colorstringBorder color in hex format (with or without #)

Example

typescript
// Add a 5px red border
client.images
  .transform(fileId)
  .border(5, "FF0000")

Returns: ImageTransformer

crop()

Crop the image to specified dimensions

Parameters

NameTypeDescription
xnumberStarting X coordinate
ynumberStarting Y coordinate
widthnumberCrop width
heightnumberCrop height

Example

typescript
// Crop a 500x500 square from position (100,100)
client.images
  .transform(fileId)
  .crop(100, 100, 500, 500)

Returns: ImageTransformer

format()

Set the output format of the image

Parameters

NameTypeDescription
typestringOutput format (jpg, png, webp, etc)

Example

typescript
// Convert to WebP format
client.images
  .transform(fileId)
  .format("webp")

Returns: ImageTransformer

Getting Results

After configuring your transformations, you can either:

  • Use toURL() to get a URL for the transformed image
  • Use transform() to get the transformed image data as a Blob

Complete Examples

Generate a Transformed URL

Generate a URL for an image with multiple transformations

typescript
// Get a URL for a resized, optimized thumbnail
const thumbnailUrl = await client.images
  .transform(fileId)
  .resize(300, 200)
  .quality(90)
  .format("webp")
  .toURL();

console.log("Transformed URL:", thumbnailUrl);

Get Transformed Image Data

Get the transformed image data as a Blob

typescript
// Get the transformed image data
const imageBlob = await client.images
  .transform(fileId)
  .resize(800, 600)
  .grayscale()
  .quality(85)
  .transform();

// Use with an image element
const imageUrl = URL.createObjectURL(imageBlob);
imageElement.src = imageUrl;

Complex Transformation Chain

Apply multiple transformations in sequence

typescript
const processedImage = await client.images
  .transform(fileId)
  .crop(100, 100, 800, 600)  // Crop first
  .rotate(90)                 // Then rotate
  .resize(400, 300)          // Then resize
  .grayscale()               // Convert to grayscale
  .quality(85)               // Set quality
  .format("webp")            // Convert to WebP
  .transform();              // Get the final image

Next Steps

Continue exploring our documentation with these related topics: