mirror of
https://github.com/openseadragon/openseadragon.git
synced 2024-11-25 06:36:11 +03:00
Merge pull request #2049 from superbland/get_relative_image_size
Add method for getting the relative size of an image
This commit is contained in:
commit
f0d5d4bedd
@ -419,6 +419,15 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
|
||||
return new $.Point(this.source.dimensions.x, this.source.dimensions.y);
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {OpenSeadragon.Point} The TiledImage's content size, in window coordinates.
|
||||
*/
|
||||
getSizeInWindowCoordinates: function() {
|
||||
var topLeft = this.imageToWindowCoordinates(new $.Point(0, 0));
|
||||
var bottomRight = this.imageToWindowCoordinates(this.getContentSize());
|
||||
return new $.Point(bottomRight.x - topLeft.x, bottomRight.y - topLeft.y);
|
||||
},
|
||||
|
||||
// private
|
||||
_viewportToImageDelta: function( viewerX, viewerY, current ) {
|
||||
var scale = (current ? this._scaleSpring.current.value : this._scaleSpring.target.value);
|
||||
|
@ -41,8 +41,11 @@
|
||||
viewer.addHandler('open', function(event) {
|
||||
var image = viewer.world.getItemAt(0);
|
||||
var contentSize = image.getContentSize();
|
||||
var sizeInWindowCoords = image.getSizeInWindowCoordinates();
|
||||
assert.equal(contentSize.x, 500, 'contentSize.x');
|
||||
assert.equal(contentSize.y, 2000, 'contentSize.y');
|
||||
assert.equal(sizeInWindowCoords.x, 125, 'sizeInWindowCoords.x');
|
||||
assert.equal(sizeInWindowCoords.y, 500, 'sizeInWindowCoords.y');
|
||||
|
||||
checkBounds(assert, image, new OpenSeadragon.Rect(5, 6, 10, 40), 'initial bounds');
|
||||
|
||||
@ -74,7 +77,18 @@
|
||||
image.setHeight(4);
|
||||
checkBounds(assert, image, new OpenSeadragon.Rect(7, 8, 1, 4), 'bounds after width');
|
||||
|
||||
assert.equal(handlerCount, 1, 'correct number of handlers called');
|
||||
viewer.addHandler('zoom', function zoomHandler(event) {
|
||||
var sizeInWindowCoords = image.getSizeInWindowCoordinates();
|
||||
viewer.removeHandler('zoom', zoomHandler);
|
||||
handlerCount++;
|
||||
assert.equal(sizeInWindowCoords.x, 4000, 'sizeInWindowCoords.x after zoom');
|
||||
assert.equal(sizeInWindowCoords.y, 16000, 'sizeInWindowCoords.y after zoom');
|
||||
});
|
||||
|
||||
viewer.viewport.zoomTo(8, null, true);
|
||||
|
||||
assert.equal(handlerCount, 2, 'correct number of handlers called');
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user