added warning check for toDataURL, and also improved image buffer unit tests

This commit is contained in:
Eric Rowell 2012-11-28 22:19:49 -08:00
parent 8958fbffc6
commit 424e86bd2b
4 changed files with 44 additions and 22 deletions

View File

@ -162,7 +162,7 @@ Kinetic.Image.prototype = {
});
}
catch(e) {
Kinetic.Global.warn('Unable to create image buffer.');
Kinetic.Global.warn('Unable to create image buffer. ' + e.message);
}
},
/**

View File

@ -93,7 +93,13 @@ Kinetic.Canvas.prototype = {
return this.element.toDataURL(mimeType, quality);
}
catch(e) {
return this.element.toDataURL();
try {
return this.element.toDataURL();
}
catch(e) {
Kinetic.Global.warn('Unable to get data URL. ' + e.message)
return '';
}
}
}
};

File diff suppressed because one or more lines are too long

View File

@ -123,13 +123,16 @@ Test.Modules.IMAGE = {
},
'create image buffer': function(containerId) {
var imageObj = new Image();
var stage = new Kinetic.Stage({
container: containerId,
width: 578,
height: 200
});
var layer = new Kinetic.Layer();
imageObj.onload = function() {
var stage = new Kinetic.Stage({
container: containerId,
width: 578,
height: 200
});
var layer = new Kinetic.Layer();
var lion = new Kinetic.Image({
x: 200,
y: 40,
@ -143,16 +146,24 @@ Test.Modules.IMAGE = {
}
});
// override color key with black
lion.colorKey = '000000';
layer.add(lion);
lion.createImageBuffer(function() {
stage.add(layer);
layer.drawHit();
});
showHit(layer);
var hitDataUrl = layer.hitCanvas.toDataURL();
//console.log(hitDataUrl);
warn(hitDataUrl === dataUrls['transparent image hit render'], 'problem rendering image on hit graph');
});
};
imageObj.src = '../assets/lion.png';
showHit(layer);
},
'grayscale image': function(containerId) {
var imageObj = new Image();
@ -355,13 +366,16 @@ Test.Modules.IMAGE = {
},
'apply shadow to transparent image': function(containerId) {
var imageObj = new Image();
var stage = new Kinetic.Stage({
container: containerId,
width: 578,
height: 200
});
var layer = new Kinetic.Layer();
imageObj.onload = function() {
var stage = new Kinetic.Stage({
container: containerId,
width: 578,
height: 200
});
var layer = new Kinetic.Layer();
var lion = new Kinetic.Image({
x: 200,
y: 40,
@ -377,13 +391,14 @@ Test.Modules.IMAGE = {
layer.add(lion);
stage.add(layer);
showHit(layer);
//var dataUrl = layer.toDataURL();
var dataUrl = layer.toDataURL();
//warn(dataUrl === dataUrls['transparent image shadow'], 'problem applying shadow to image with transparent pixels');
warn(dataUrl === dataUrls['transparent image shadow'], 'problem applying shadow to image with transparent pixels');
};
imageObj.src = '../assets/lion.png';
showHit(layer);
}
};