Safari needs the img.onload event before actually working on the img
This commit is contained in:
parent
be2f948da5
commit
c8d0c4762d
2 changed files with 39 additions and 27 deletions
|
@ -82,6 +82,7 @@ angular.module('mFileUpload', ['matrixService', 'mUtilities'])
|
|||
// First, get the image size
|
||||
mUtilities.getImageSize(imageFile).then(
|
||||
function(size) {
|
||||
console.log("image size: " + JSON.stringify(size));
|
||||
|
||||
// The final operation: send imageFile
|
||||
var uploadImage = function() {
|
||||
|
|
|
@ -38,11 +38,16 @@ angular.module('mUtilities', [])
|
|||
img.src = e.target.result;
|
||||
|
||||
// Once ready, returns its size
|
||||
img.onload = function() {
|
||||
deferred.resolve({
|
||||
width: img.width,
|
||||
height: img.height
|
||||
});
|
||||
};
|
||||
img.onerror = function(e) {
|
||||
deferred.reject(e);
|
||||
};
|
||||
};
|
||||
reader.onerror = function(e) {
|
||||
deferred.reject(e);
|
||||
};
|
||||
|
@ -72,6 +77,8 @@ angular.module('mUtilities', [])
|
|||
|
||||
img.src = e.target.result;
|
||||
|
||||
// Once ready, returns its size
|
||||
img.onload = function() {
|
||||
var ctx = canvas.getContext("2d");
|
||||
ctx.drawImage(img, 0, 0);
|
||||
|
||||
|
@ -99,6 +106,10 @@ angular.module('mUtilities', [])
|
|||
var dataUrl = canvas.toDataURL("image/jpeg", 0.7);
|
||||
deferred.resolve(self.dataURItoBlob(dataUrl));
|
||||
};
|
||||
img.onerror = function(e) {
|
||||
deferred.reject(e);
|
||||
};
|
||||
};
|
||||
reader.onerror = function(e) {
|
||||
deferred.reject(e);
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue