Skip to content

Commit 07e0709

Browse files
Merge pull request #476 from cornerstonejs/fix/viewport-translation
Fixing canvas' wrong translation for displayedArea
2 parents 42a8aec + 3d4de22 commit 07e0709

8 files changed

+16
-9
lines changed

example/displayedArea/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<div class="container">
99

1010
<h1>
11-
displayed/index.html
11+
displayedArea/index.html
1212
</h1>
1313

1414
This example demonstrates the IHE Image Display Test 521: Consistent Presentation of Images.

src/internal/calculateTransform.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,12 @@ export default function (enabledElement, scale) {
2727
let widthScale = enabledElement.viewport.scale;
2828
let heightScale = enabledElement.viewport.scale;
2929
const imageDisplayedArea = getDisplayedArea(enabledElement.image, enabledElement.viewport);
30-
const width = imageDisplayedArea.brhc.x - (imageDisplayedArea.tlhc.x - 1);
31-
const height = imageDisplayedArea.brhc.y - (imageDisplayedArea.tlhc.y - 1);
30+
31+
const offsetX = imageDisplayedArea.tlhc.x - 1;
32+
const offsetY = imageDisplayedArea.tlhc.y - 1;
33+
34+
const width = imageDisplayedArea.brhc.x - offsetX;
35+
const height = imageDisplayedArea.brhc.y - offsetY;
3236

3337
if (imageDisplayedArea.presentationSizeMode === 'NONE') {
3438
if (enabledElement.image.rowPixelSpacing < enabledElement.image.columnPixelSpacing) {
@@ -89,5 +93,8 @@ export default function (enabledElement, scale) {
8993
// Move back from center of image
9094
transform.translate(-width / 2, -height / 2);
9195

96+
// Move to displayedArea
97+
transform.translate(-offsetX, -offsetY);
98+
9299
return transform;
93100
}

src/internal/drawCompositeImage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ function renderLayers (context, layers, invalidated) {
122122
const width = layerDisplayedArea.brhc.x - sx;
123123
const height = layerDisplayedArea.brhc.y - sy;
124124

125-
context.drawImage(layer.canvas, sx, sy, width, height, 0, 0, width, height);
125+
context.drawImage(layer.canvas, sx, sy, width, height, sx, sy, width, height);
126126
context.restore();
127127

128128
layer.invalid = false;

src/rendering/renderColorImage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ export function renderColorImage (enabledElement, invalidated) {
161161
const width = imageDisplayedArea.brhc.x - sx;
162162
const height = imageDisplayedArea.brhc.y - sy;
163163

164-
context.drawImage(renderCanvas, sx, sy, width, height, 0, 0, width, height);
164+
context.drawImage(renderCanvas, sx, sy, width, height, sx, sy, width, height);
165165

166166
enabledElement.renderingTools = saveLastRendered(enabledElement);
167167
}

src/rendering/renderGrayscaleImage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export function renderGrayscaleImage (enabledElement, invalidated) {
122122
const width = imageDisplayedArea.brhc.x - sx;
123123
const height = imageDisplayedArea.brhc.y - sy;
124124

125-
context.drawImage(renderCanvas, sx, sy, width, height, 0, 0, width, height);
125+
context.drawImage(renderCanvas, sx, sy, width, height, sx, sy, width, height);
126126

127127
enabledElement.renderingTools = saveLastRendered(enabledElement);
128128
}

src/rendering/renderLabelMapImage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ export function renderLabelMapImage (enabledElement, invalidated) {
125125
const width = imageDisplayedArea.brhc.x - sx;
126126
const height = imageDisplayedArea.brhc.y - sy;
127127

128-
context.drawImage(renderCanvas, sx, sy, width, height, 0, 0, width, height);
128+
context.drawImage(renderCanvas, sx, sy, width, height, sx, sy, width, height);
129129

130130
enabledElement.renderingTools = saveLastRendered(enabledElement);
131131
}

src/rendering/renderPseudoColorImage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ export function renderPseudoColorImage (enabledElement, invalidated) {
129129
const width = imageDisplayedArea.brhc.x - sx;
130130
const height = imageDisplayedArea.brhc.y - sy;
131131

132-
context.drawImage(renderCanvas, sx, sy, width, height, 0, 0, width, height);
132+
context.drawImage(renderCanvas, sx, sy, width, height, sx, sy, width, height);
133133

134134
enabledElement.renderingTools = saveLastRendered(enabledElement);
135135
}

src/rendering/renderWebImage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export function renderWebImage (enabledElement, invalidated) {
5050
const width = imageDisplayedArea.brhc.x - sx;
5151
const height = imageDisplayedArea.brhc.y - sy;
5252

53-
context.drawImage(image.getImage(), sx, sy, width, height, 0, 0, width, height);
53+
context.drawImage(image.getImage(), sx, sy, width, height, sx, sy, width, height);
5454
} else {
5555
renderColorImage(enabledElement, invalidated);
5656
}

0 commit comments

Comments
 (0)