Resize and rotate images by EXIF orientation on the client side during upload. This uses the HTML Canvas element and HTML5 FileReader.
npm install canvas-image-uploadernpm install canvas-image-uploader --saveOr, if you just want to include the Javascript file in your HTML, make sure to also include https://github.com/jseidelin/exif-js, before CanvasImageUploader.
Javascript:
var uploader = new CanvasImageUploader({
maxSize: 1500,
jpegQuality: 0.7
});
$('#file').bind('change', function onImageChanged(e) {
var files = e.target.files || e.dataTransfer.files;
if (files) {
file = files[0];
var $canvas = $('
Javascript:
uploader.readImageToCanvas(file, $canvas, function () {
var canvas = $canvas[0];
// Render the preview from your original canvas...
uploader.copyToCanvas(canvas, $('#preview-canvas'), MAX_PREVIEW_SIZE);
uploader.saveCanvasToImageData(canvas);
});