A Node JS application that exposes APIs that transform uploaded images (crop, rotate, resize) and allow for their download post-transformation
You need to have these installed:
- Git
- Node JS
Perform these steps using your CLI tool:
- Clone this repository (usually with
git clone <REPO_URL>
) - Install required packages with
npm install
- Start the application with
npm start
The application exposes the APIs:
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:
// Request 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); }); // Response // { // "status": true, // "body": { // "message": "Image uploaded successfully.", // "_id": <uploadId> //string // } // }
Method: GET
Acceptable Data (Request Query
):
-
to: e.g
/export/<uploadId>?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:
// Request axios({ method: "get", url: "/export/<uploadId>?to=PDF", }) .then(function (response) { //handle success console.log(response); }) .catch(function (response) { //handle error console.log(response); }); // Response // => Requested file is downloaded as specified file type