Image Operations - Scaling

Image Operations / Image Scaling

On this page:

Image scaling allows you to transform the dimensions of your images by a given scale factor. Unlike image resizing, image scaling only accepts a floating point size parameter by which the image will be proportionally transformed. For example, if you'd like to have your images 50% smaller, you would specify 0.5 as a size value.

By default, image scaling will transform images according to their aspect ratio so they'll come out with perfect proportions. You may however, alter the ratio parameter and specify a floating point value for the aspect ratio. The aspect ratio value is the height divided by the width. The default ratio value is 1.0.

{
    "scale": {
        "size": 0.5,
        "ratio": 1.0
    }
}
Given the input image 750px × 400px
Scale it down by 50% by setting "size" to 0.5
The resulting image is 50% of the input image: 375px × 200px

Code Examples for Image Scaling

Below, you'll find examples of how to use Image Scaling from the Optidash API:

  • PHP
  • Node
  • Ruby
  • Go
  • Python
  • Java
<?php

/**
* Instantiate new `$opti` by calling a constructor
*/

$opti = new Optidash\Optidash('your-api-key');


/**
* Provide a publicly available image URL with fetch(string) method
* and scale it down by setting "size" parameter to 0.5
*/

$opti
    ->fetch('https://www.website.com/image.jpg')
    ->scale(array(
        'size' => 0.5
    ))
    ->toJSON(function ($error, $meta) {
        if (!empty($error)) {
            throw new Exception($error);
        }

        /**
        * You'll find the full JSON metadata array within the `$meta` variable.
        * Remember to always check if the `success` property is set to `true`.
        */

        if ($meta['success'] == true) {
            print ($meta['output']['url']);
        } else {
            print ($meta['message']);
        }
    });
/**
* Module dependencies
*/

const Optidash = require("optidash");


/**
* Instantiate new `opti` by calling a constructor
*/

const opti = new Optidash("your-api-key");


/**
* Provide a publicly available image URL with fetch(string) method
* and scale it down by setting "size" parameter to 0.5
*/

opti
    .fetch("https://www.website.com/image.jpg")
    .scale({
        size: 0.5
    })
    .toJSON((err, meta) => {
        if (err) {
            return console.log(err);
        }

        /**
        * You'll find the full JSON metadata hash within the `meta` variable.
        * Remember to always check if the `success` property is set to `true`.
        */

        if (meta.success) {
            console.log(meta.output.url);
        } else {
            console.log(meta.message);
        }
    });
##
# Require dependencies

require "optidash"


##
# Instantiate new `opti` by calling a constructor

opti = Optidash.new("your-api-key")


##
# Provide a publicly available image URL with fetch(string) method
# and scale it down by setting "size" parameter to 0.5

err, meta = opti
    .fetch("https://www.website.com/image.jpg")
    .scale(
        size: 0.5
    )
    .to_json

abort(err) if err


##
# You'll find the full JSON metadata hash within the `meta` variable.
# Remember to always check if the `success` property is set to `true`.

if meta["success"]
    puts meta["output"]["url"]
else
    puts meta["message"]
end
package main

import (
    "fmt"
    "github.com/optidash/optidash-go"
)

func main() {

    /**
    * Instantiate new `opti` by calling a constructor
    */

    opti, err := optidash.NewClient("your-api-key")

    if err != nil {
        panic(err)
    }


    /**
    * Provide a publicly available image URL with Fetch(string) method
    * and scale it down by setting "size" parameter to 0.5
    */

    meta, err := opti.
        Fetch("https://www.website.com/image.jpg").
        Scale(optidash.P{
            "size": 0.5
        }).
        ToJSON()

    if err != nil {
        panic(err)
    }


    /**
    * You'll find the full JSON metadata hash within the `meta` variable.
    * Remember to always check if the `success` property is set to `true`.
    */

    if meta["success"].(map[string]interface{})["success"].(bool) {
        fmt.Println(meta["output"].(map[string]interface{})["url"])
    } else {
        fmt.Println(meta["message"])
    }
}
##
# Import dependencies

from optidash import optidash


##
# Instantiate new `opti` by calling a constructor

opti = optidash('your-api-key')


##
# Provide a publicly available image URL with fetch(string) method
# and scale it down by setting "size" parameter to 0.5

err, meta = (
    opti
        .fetch('https://www.website.com/image.jpg')
        .scale({
            'size': 0.5
        })
        .toJSON()
)

if err is not None:
    raise StandardError(err)


##
# You'll find the full JSON metadata hash within the `meta` variable.
# Remember to always check if the `success` property is set to `true`.

if meta['success'] is True:
    print (meta['output']['url'])
else:
    print (meta['message'])
package com.optidash.examples;

/**
* Import dependencies
*/

import static com.optidash.OperationConfiguration.settings;
import com.optidash.Optidash;
import com.optidash.Fetch;
import com.optidash.Response;

public class Scaling {
    public static void main(String[] args) {

        /**
        * Instantiate new `opti` by calling a constructor
        */

        Optidash opti = new Optidash("your-api-key");

        /**
        * Provide a publicly available image URL with fetch(string) method
        * and scale it down by setting "size" parameter to 0.5
        */

        final Fetch fetch = opti.fetch("https://www.website.com/image.jpg");

        fetch.scale(
            settings().set("size", 0.5)
        );

        final Response response = fetch.toJson();

        /**
        * You'll find the full JSON metadata hash within the `Response#getMetadata()` property.
        * Remember to always check if the `Response#successful` property is set to `true`.
        */

        if (response.isSuccessful()) {
            System.out.println(response.getMetadata().getOutput().get("url"));
        } else {
            System.out.println(response.getMessage());
        }
    }
}
Grace Przemek Magda Damian
Have questions? Let's talk!We usually respond in just under an hour

Thanks for reaching out!

We've received your message
and will get to it as quickly as possible.

Whoops, looks like something went wrong.

We encountered an unexpected error and cannot complete your request. Please try reloading the page.