https://github.com/ChuckForkJS/jQuery-File-Upload/blob/master/js/jquery.fileupload-image-editor.js
actions.resizeImage(data, resizeOptions).then(function () { var imageOptions = { imagePreviewName: options.imagePreviewName }; actions.setImage(data, imageOptions); actions.deleteImageReferences(data, {}); // Replace preview image data.context.find('.preview').each(function (index, elm) { $(elm).empty(); $(elm).append(data.files[index].preview); }); data.context.find('.size').text( thiz._formatFileSize(data.files[0].size) ); data.context.find('.name').text( data.files[0].name ); $editor.modal('hide'); });
先触发了jquery.fileupload-image.js中的resizeImage方法
// Resizes the image given as data.canvas or data.img // and updates data.canvas or data.img with the resized image. // Also stores the resized image as preview property. // Accepts the options maxWidth, maxHeight, minWidth, // minHeight, canvas and crop: resizeImage: function (data, options) { if (options.disabled || !(data.canvas || data.img)) { return data; } options = $.extend({canvas: true}, options); var that = this, dfd = $.Deferred(), img = (options.canvas && data.canvas) || data.img, resolve = function (newImg) { if (newImg && (newImg.width !== img.width || newImg.height !== img.height || options.forceResize)) { data[newImg.getContext ? 'canvas' : 'img'] = newImg; } data.preview = newImg; dfd.resolveWith(that, [data]); }, thumbnail; if (data.exif) { if (options.orientation === true) { options.orientation = data.exif.get('Orientation'); } if (options.thumbnail) { thumbnail = data.exif.get('Thumbnail'); if (thumbnail) { loadImage(thumbnail, resolve, options); return dfd.promise(); } } // Prevent orienting the same image twice: if (data.orientation) { delete options.orientation; } else { data.orientation = options.orientation; } } if (img) { resolve(loadImage.scale(img, options)); return dfd.promise(); } return data; },