This library provides basic image processing on the frontend side (inside the web browser) for use in TypeScript or Angular projects.
Available processing functions:
- applyExifOrientation
- resize
- sharpen
- rotate
- mirror
- noop
For best results I recommend to always use sharpen
after resize
- that's what Photoshop does, too ;)
Available File/HTMLImageElement utility functions:
- fileToBase64
- fileToArrayBuffer
- base64ToImgElement
- base64ToArrayBuffer
- Smooth resizing of images in multiple resize-steps
- Prevents error on iOS
Total canvas memory use exceeds the maximum limit
by using only one canvas for everything - Tree shakable - if you use a bundler like Webpack it will not include unused functions in your project
npm i ts-image-processor -S
import { getBlobForFile, imageProcessor, resize, sharpen, output } from 'ts-image-processor';
// If you have a file from <input>, convert it to base64-string first
getBlobForFile(file).then(base64 => {
// Use any of the functions with an existing blob (base64-string)
imageProcessor
.src(base64)
.pipe(
resize({maxWidth: 800, maxHeight: 800}),
sharpen(),
)
.then(processedBase64 => {
// Do whatever with your happy result :)
});
});
Feel free to create pull requests
- Cleanup files/folders + tslint
-
imageProcessor.src()
should handle wrong input -
imageProcessor.src()
should acceptFile
-
imageProcessor.src()
should acceptFileList
-
imageProcessor.src()
should acceptFile[]
-
imageProcessor.src()
should acceptstring[]
(base64-array) -
rotate()
should provide more options than just 90° rotation - Process everything within a Web Worker
- Write advanced documentation with included typedoc