0.0.1 • Published 4 years ago

image-transform-api v0.0.1

Weekly downloads
4
License
ISC
Repository
github
Last release
4 years ago

ImageManipulationAPI

A Node JS application that exposes APIs that transform uploaded images (crop, rotate, resize) and allow for their download post-transformation

Pre-requisites:

You need to have these installed:

  • Git
  • Node JS

Get started by:

Perform these steps using your CLI tool: 1. Clone this repository (usually with git clone <REPO_URL>) 2. Install required packages with npm install 3. Start the application with npm start

API endpoints:

The application exposes the APIs:

1. URL: "/upload"

Method: POST

Acceptable Data (Request Body):

  • image: This would contain the file data
  • crop: e.g { crop: "x=2;y=4;w=3;h=10" }

    x - horizontal distance from origin,

    y - vertical distance from origin,

    w - the width of new image,

    h - the height of new image

  • scale: e.g { scale: "f=1.5" }

    f - scale factor

  • resize: e.g { resize: "w=3;h=10" }

    w - the width of new image,

    h - the height of new image

  • rotate: e.g { rotate: "d=90" }

    d - degrees

  • order: e.g { order: "sc;re;ro;cr" }

    sc - scale

    re - resize

    ro - rotate

    cr - crop

    //default order: "re;ro;sc;cr" meaning the worker should first 'resize', then 'rotate', then 'scale' and lastly 'crop' the parsed image.

    Example:

    axios({
        method: 'post',
        url: '/upload',
        data: {
            image: imageFile,
            crop: "x=2;y=4;w=3;h=10",
            scale: "f=1.5",
            resize: "w=3;h=10",
            rotate: "d=90",
            order: "sc;ro;re;cr"
        }
    })
     .then(function (response) {
        //handle success
        console.log(response);
     })
     .catch(function (response) {
        //handle error
        console.log(response);
     });

2. URL: "/export"

Method: GET

Acceptable Data (Request Query):

  • to: e.g ?to=jpg // jpg, png, pdf or PDf (case insensitive)

    JPG - exports a JPEG image,

    PNG - exports a PNG image,

    PDF - exports a PDF document,

    Example:

     // For the "/export" endpoint
    axios({
        method: 'get',
        url: '/export?to=PDF'
    })
     .then(function (response) {
        //handle success
        console.log(response);
     })
     .catch(function (response) {
        //handle error
        console.log(response);
     });