mirror of
https://github.com/konvajs/konva.git
synced 2025-10-15 12:34:52 +08:00
test for toDataURL + HDPI
This commit is contained in:
@@ -280,33 +280,46 @@ suite('Node', function() {
|
||||
});
|
||||
|
||||
// ======================================================
|
||||
test('test pixel ratio toDataURL', function() {
|
||||
test.only('toDataURL + HDPI', function(done) {
|
||||
var oldRatio = Konva.pixelRatio;
|
||||
Konva.pixelRatio = 2;
|
||||
|
||||
var stage = addStage();
|
||||
var layer = new Konva.Layer();
|
||||
|
||||
// override pixel ratio
|
||||
|
||||
layer.canvas = new Konva.SceneCanvas({
|
||||
pixelRatio: 2
|
||||
});
|
||||
layer.canvas._canvas.style.position = 'absolute';
|
||||
|
||||
var circle = new Konva.Circle({
|
||||
x: stage.getWidth() / 2,
|
||||
y: stage.getHeight() / 2,
|
||||
radius: 70,
|
||||
fill: 'green',
|
||||
stroke: 'black',
|
||||
strokeWidth: 4
|
||||
});
|
||||
|
||||
layer.add(circle);
|
||||
stage.add(layer);
|
||||
|
||||
assert.equal(layer.canvas.pixelRatio, 2);
|
||||
var circle = new Konva.Circle({
|
||||
fill : 'green',
|
||||
x : stage.width() / 2,
|
||||
y : stage.height() / 2,
|
||||
radius : 50
|
||||
});
|
||||
layer.add(circle);
|
||||
|
||||
var layer2 = new Konva.Layer();
|
||||
stage.add(layer2);
|
||||
|
||||
stage.draw();
|
||||
stage.toDataURL({
|
||||
callback : function(url) {
|
||||
console.log(url);
|
||||
var img = new Image();
|
||||
img.onload = function() {
|
||||
var image = new Konva.Image({
|
||||
image : img
|
||||
});
|
||||
layer2.add(image);
|
||||
layer2.draw();
|
||||
compareLayers(layer, layer2);
|
||||
done();
|
||||
}
|
||||
img.src = url;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
// ======================================================
|
||||
test('listen and don\'t listen', function() {
|
||||
var stage = addStage();
|
||||
|
@@ -521,4 +521,43 @@ suite('Stage', function() {
|
||||
assert.equal(Konva.isDragging(), false);
|
||||
assert.equal(Konva.DD.node, undefined);
|
||||
});
|
||||
|
||||
test.skip('toDataURL + HDPI', function(done) {
|
||||
Konva.pixelRatio = 2;
|
||||
|
||||
var stage = addStage();
|
||||
var layer = new Konva.Layer();
|
||||
|
||||
var image = new Image();
|
||||
image.onload = function() {
|
||||
var lion = new Konva.Image({
|
||||
image: image,
|
||||
draggable: true
|
||||
});
|
||||
|
||||
lion.cache();
|
||||
lion.drawHitFromCache();
|
||||
|
||||
layer.add(lion);
|
||||
stage.add(layer);
|
||||
stage.draw();
|
||||
|
||||
var snapshotStage = addStage();
|
||||
|
||||
stage.toImage({
|
||||
callback: function (image) {
|
||||
var imageNode = new Konva.Image({
|
||||
image: image
|
||||
});
|
||||
var snapshotLayer = new Konva.Layer();
|
||||
snapshotLayer.add(imageNode);
|
||||
snapshotStage.add(snapshotLayer);
|
||||
snapshotStage.draw();
|
||||
Konva.pixelRatio = undefined;
|
||||
done();
|
||||
}
|
||||
});
|
||||
};
|
||||
image.src = 'assets/lion.png';
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user