From b07ac8ff7517b5f6102ee41f2e3b69fc7a05c1a9 Mon Sep 17 00:00:00 2001 From: Piyush Aryan Date: Thu, 14 May 2026 16:23:07 +0530 Subject: [PATCH 1/3] feat: adds colorize and crop modes --- src/interfaces/shared.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/interfaces/shared.ts b/src/interfaces/shared.ts index 40d3dbe..d7561cc 100644 --- a/src/interfaces/shared.ts +++ b/src/interfaces/shared.ts @@ -1414,6 +1414,17 @@ export interface Transformation { */ border?: string; + /** + * Applies a color tint to the image. Accepts color and intensity as optional + * parameters. + * + * - `co-color` - Color to apply (e.g., `red`, `blue`, `FF0022`). Default is gray + * color. + * - `in-intensity` - Intensity of the color (0-100). Default is 35. See + * [Colorize](https://imagekit.io/docs/effects-and-enhancements#colorize---e-colorize). + */ + colorize?: string; + /** * Indicates whether the output image should retain the original color profile. See * [Color profile](https://imagekit.io/docs/image-optimization#color-profile---cp). @@ -1442,13 +1453,13 @@ export interface Transformation { * Crop modes for image resizing. See * [Crop modes & focus](https://imagekit.io/docs/image-resize-and-crop#crop-crop-modes--focus). */ - crop?: 'force' | 'at_max' | 'at_max_enlarge' | 'at_least' | 'maintain_ratio'; + crop?: 'force' | 'at_max' | 'at_max_enlarge' | 'at_least' | 'maintain_ratio' | 'maintain_ratio_no_enlarge'; /** * Additional crop modes for image resizing. See * [Crop modes & focus](https://imagekit.io/docs/image-resize-and-crop#crop-crop-modes--focus). */ - cropMode?: 'pad_resize' | 'extract' | 'pad_extract'; + cropMode?: 'pad_resize' | 'extract' | 'pad_extract' | 'pad_resize_no_enlarge' | 'pad_extract_no_shrink'; /** * Specifies a fallback image if the resource is not found, e.g., a URL or file From eaab0ddb9332c73402d2c966acad72333d7c208b Mon Sep 17 00:00:00 2001 From: Piyush Aryan Date: Thu, 14 May 2026 16:29:38 +0530 Subject: [PATCH 2/3] feat: add colorize transformation support in URL generation --- src/constants/supportedTransforms.ts | 1 + test/url-generation/basic.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/constants/supportedTransforms.ts b/src/constants/supportedTransforms.ts index aee5fe3..f5818bf 100644 --- a/src/constants/supportedTransforms.ts +++ b/src/constants/supportedTransforms.ts @@ -49,6 +49,7 @@ export const supportedTransforms: { [key: string]: string } = { gradient: "e-gradient", colorReplace: "cr", distort: "e-distort", + colorize: "e-colorize", // Other flags & finishing progressive: "pr", diff --git a/test/url-generation/basic.js b/test/url-generation/basic.js index da928ee..cef7d20 100644 --- a/test/url-generation/basic.js +++ b/test/url-generation/basic.js @@ -1279,13 +1279,14 @@ describe("URL generation", function () { raw: "h-200,w-300,l-image,i-logo.png,l-end", // New transformation parameters colorReplace: 'FF0000_50_00FF00', + colorize: 'co-red_in-35', distort: 'p-50_50_150_50_150_150_50_150', } ] }); expect(url).equal( - `https://ik.imagekit.io/test_url_endpoint/test_path.jpg?tr=h-300,w-400,ar-4-3,q-40,c-force,cm-extract,fo-left,f-jpeg,r-50,bg-A94D34,b-5-A94D34,rt-90,bl-10,n-some_name,pr-true,lo-true,t-5,md-true,cp-true,di-folder@@file.jpg,dpr-3,x-10,y-20,xc-30,yc-40,fl-h,o-0.8,z-2,vc-h264,ac-aac,so-5,eo-15,du-10,sr-1440_1080,e-grayscale,e-upscale,e-retouch,e-genvar,e-dropshadow,e-changebg-prompt-car,e-edit-prompt-make it vintage,e-bgremove,e-contrast,e-shadow-bl-15_st-40_x-10_y-N5,e-sharpen-10,e-usm-2-2-0.8-0.024,e-gradient-from-red_to-white,orig-true,pg-2_4,h-200,w-300,l-image,i-logo.png,l-end,cr-FF0000_50_00FF00,e-distort-p-50_50_150_50_150_150_50_150` + `https://ik.imagekit.io/test_url_endpoint/test_path.jpg?tr=h-300,w-400,ar-4-3,q-40,c-force,cm-extract,fo-left,f-jpeg,r-50,bg-A94D34,b-5-A94D34,rt-90,bl-10,n-some_name,pr-true,lo-true,t-5,md-true,cp-true,di-folder@@file.jpg,dpr-3,x-10,y-20,xc-30,yc-40,fl-h,o-0.8,z-2,vc-h264,ac-aac,so-5,eo-15,du-10,sr-1440_1080,e-grayscale,e-upscale,e-retouch,e-genvar,e-dropshadow,e-changebg-prompt-car,e-edit-prompt-make it vintage,e-bgremove,e-contrast,e-shadow-bl-15_st-40_x-10_y-N5,e-sharpen-10,e-usm-2-2-0.8-0.024,e-gradient-from-red_to-white,orig-true,pg-2_4,h-200,w-300,l-image,i-logo.png,l-end,cr-FF0000_50_00FF00,e-colorize-co-red_in-35,e-distort-p-50_50_150_50_150_150_50_150` ); }); }); From 952e6e827c8a81db81edaa1b85590bc869f09d00 Mon Sep 17 00:00:00 2001 From: Piyush Aryan Date: Fri, 15 May 2026 11:33:57 +0530 Subject: [PATCH 3/3] chore: bump version to 5.4.0 and update changelog with new crop modes support --- CHANGELOG.md | 6 ++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8590cfe..7af4dfa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Version 5.4.0 + +1. **Enhancement:** + - Added support for new crop modes: `maintain_ratio_no_enlarge`, `pad_resize_no_enlarge` and `pad_extract_no_shrink` + - Added support for `colorize` transformation + ## Version 5.3.0 1. **Enhancement:** diff --git a/package-lock.json b/package-lock.json index 9779dae..854fa89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@imagekit/javascript", - "version": "5.3.0", + "version": "5.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@imagekit/javascript", - "version": "5.3.0", + "version": "5.4.0", "license": "MIT", "devDependencies": { "@babel/cli": "^7.10.5", diff --git a/package.json b/package.json index b865165..ec0a2c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@imagekit/javascript", - "version": "5.3.0", + "version": "5.4.0", "description": "ImageKit Javascript SDK", "main": "dist/imagekit.cjs.js", "module": "dist/imagekit.esm.js",