Skip to content
This repository has been archived by the owner on Oct 3, 2024. It is now read-only.

Commit

Permalink
Fixed bug in image creating
Browse files Browse the repository at this point in the history
  • Loading branch information
koorgoo committed Oct 20, 2014
1 parent 04479ba commit ff3f189
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 40 deletions.
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ng-cropper",
"main": "ngCropper.js",
"version": "0.1.0",
"version": "0.1.1",
"homepage": "https://github.com/koorgoo/ngCropper",
"authors": [
"Dima Kurguzov <koorgoo@gmail.com>"
Expand Down
19 changes: 12 additions & 7 deletions dist/ngCropper.all.js
Original file line number Diff line number Diff line change
Expand Up @@ -1141,8 +1141,8 @@ angular.module('ngCropper', ['ng'])
this.encode = function(blob) {
var defer = $q.defer();
var reader = new FileReader();
reader.onload = function() {
defer.resolve(reader.result);
reader.onload = function(e) {
defer.resolve(e.target.result);
};
reader.readAsDataURL(blob);
return defer.promise;
Expand Down Expand Up @@ -1185,10 +1185,7 @@ angular.module('ngCropper', ['ng'])
var defer = $q.defer();
var _decode = this.decode;

this.encode(file).then(function(dataUrl) {
var image = new Image();
image.src = dataUrl;

this.encode(file).then(_createImage).then(function(image) {
var heightOrig = image.height;
var widthOrig = image.width;
var ratio, height, width;
Expand Down Expand Up @@ -1226,8 +1223,16 @@ angular.module('ngCropper', ['ng'])
});

return defer.promise;
}
};


function _createImage(source) {
var defer = $q.defer();
var image = new Image();
image.onload = function(e) { defer.resolve(e.target); };
image.src = source;
return defer.promise;
}

function createCanvas(data) {
var canvas = document.createElement('canvas');
Expand Down
2 changes: 1 addition & 1 deletion dist/ngCropper.all.min.js

Large diffs are not rendered by default.

19 changes: 12 additions & 7 deletions dist/ngCropper.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ angular.module('ngCropper', ['ng'])
this.encode = function(blob) {
var defer = $q.defer();
var reader = new FileReader();
reader.onload = function() {
defer.resolve(reader.result);
reader.onload = function(e) {
defer.resolve(e.target.result);
};
reader.readAsDataURL(blob);
return defer.promise;
Expand Down Expand Up @@ -72,10 +72,7 @@ angular.module('ngCropper', ['ng'])
var defer = $q.defer();
var _decode = this.decode;

this.encode(file).then(function(dataUrl) {
var image = new Image();
image.src = dataUrl;

this.encode(file).then(_createImage).then(function(image) {
var heightOrig = image.height;
var widthOrig = image.width;
var ratio, height, width;
Expand Down Expand Up @@ -113,8 +110,16 @@ angular.module('ngCropper', ['ng'])
});

return defer.promise;
}
};


function _createImage(source) {
var defer = $q.defer();
var image = new Image();
image.onload = function(e) { defer.resolve(e.target); };
image.src = source;
return defer.promise;
}

function createCanvas(data) {
var canvas = document.createElement('canvas');
Expand Down
2 changes: 1 addition & 1 deletion dist/ngCropper.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 12 additions & 7 deletions ngCropper.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ angular.module('ngCropper', ['ng'])
this.encode = function(blob) {
var defer = $q.defer();
var reader = new FileReader();
reader.onload = function() {
defer.resolve(reader.result);
reader.onload = function(e) {
defer.resolve(e.target.result);
};
reader.readAsDataURL(blob);
return defer.promise;
Expand Down Expand Up @@ -72,10 +72,7 @@ angular.module('ngCropper', ['ng'])
var defer = $q.defer();
var _decode = this.decode;

this.encode(file).then(function(dataUrl) {
var image = new Image();
image.src = dataUrl;

this.encode(file).then(_createImage).then(function(image) {
var heightOrig = image.height;
var widthOrig = image.width;
var ratio, height, width;
Expand Down Expand Up @@ -113,8 +110,16 @@ angular.module('ngCropper', ['ng'])
});

return defer.promise;
}
};


function _createImage(source) {
var defer = $q.defer();
var image = new Image();
image.onload = function(e) { defer.resolve(e.target); };
image.src = source;
return defer.promise;
}

function createCanvas(data) {
var canvas = document.createElement('canvas');
Expand Down
31 changes: 15 additions & 16 deletions test/ngCropper.spec.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
var injector = angular.injector(['ngCropper']);
var pixel = "data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";


describe('ngCropper', function() {

function getImage(dataUrl) {
var image = new Image();
image.src = dataUrl;
return image;
function createImage(source) {
var defer = injector.get('$q').defer();
var img = new Image();
img.src = source;
img.onload = function(e) { defer.resolve(e.target); };
return defer.promise;
}

describe('Cropper service', function() {
Expand Down Expand Up @@ -62,9 +65,8 @@ describe('ngCropper', function() {

it('accept Number ratio', function(done) {
Cropper.scale(blob, 2) // = 4 pixels
.then(Cropper.encode)
.then(function(dataUrl) {
var img = getImage(dataUrl);
.then(Cropper.encode).then(createImage)
.then(function(img) {
assert.equal(img.width, 2);
assert.equal(img.height, 2);
done();
Expand All @@ -73,9 +75,8 @@ describe('ngCropper', function() {

it('accept Object data', function(done) {
Cropper.scale(blob, {width: 4, height: 2}) // = 8 pixels
.then(Cropper.encode)
.then(function(dataUrl) {
var img = getImage(dataUrl);
.then(Cropper.encode).then(createImage)
.then(function(img) {
assert.equal(img.width, 4);
assert.equal(img.height, 2);
done();
Expand All @@ -84,9 +85,8 @@ describe('ngCropper', function() {

it('calculate width if height passed', function(done) {
Cropper.scale(blob, {height: 2}) // = 4 pixels
.then(Cropper.encode)
.then(function(dataUrl) {
var img = getImage(dataUrl);
.then(Cropper.encode).then(createImage)
.then(function(img) {
assert.equal(img.width, 2);
assert.equal(img.height, 2);
done();
Expand All @@ -95,9 +95,8 @@ describe('ngCropper', function() {

it('calculate height if with passed', function(done) {
Cropper.scale(blob, {width: 2}) // = 4 pixels
.then(Cropper.encode)
.then(function(dataUrl) {
var img = getImage(dataUrl);
.then(Cropper.encode).then(createImage)
.then(function(img) {
assert.equal(img.width, 2);
assert.equal(img.height, 2);
done();
Expand Down

0 comments on commit ff3f189

Please sign in to comment.