适应窗口调整后,影像页数应该不变

main
wangxiaoshuang 2026-05-06 13:21:49 +08:00
parent a87769a60f
commit cd2c56c510
2 changed files with 13 additions and 8 deletions

View File

@ -41,10 +41,10 @@
<div v-if="series" class="right-bottom-text"> <div v-if="series" class="right-bottom-text">
<div v-show="imageInfo.location">Location: {{ <div v-show="imageInfo.location">Location: {{
`${Number(imageInfo.location).toFixed(digitPlaces)} mm` `${Number(imageInfo.location).toFixed(digitPlaces)} mm`
}}</div> }}</div>
<div v-show="imageInfo.sliceThickness">Slice Thickness: {{ <div v-show="imageInfo.sliceThickness">Slice Thickness: {{
`${Number(imageInfo.sliceThickness).toFixed(digitPlaces)} mm` `${Number(imageInfo.sliceThickness).toFixed(digitPlaces)} mm`
}}</div> }}</div>
<div v-show="imageInfo.wwwc">WW/WL: {{ imageInfo.wwwc }}</div> <div v-show="imageInfo.wwwc">WW/WL: {{ imageInfo.wwwc }}</div>
</div> </div>
<div class="orientation-top"> <div class="orientation-top">
@ -564,17 +564,18 @@ export default {
const renderingEngine = getRenderingEngine(this.renderingEngineId) const renderingEngine = getRenderingEngine(this.renderingEngineId)
const viewport = renderingEngine.getViewport(this.viewportId) const viewport = renderingEngine.getViewport(this.viewportId)
if (!viewport) return if (!viewport) return
let index = this.series.SliceIndex
if (forceFitToWindow) { if (forceFitToWindow) {
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true }) viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
viewport.render() viewport.render()
this.setFullScreen(index)
return return
} }
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true }) viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
const canvas = viewport.getCanvas() || this.element.querySelector('canvas') const canvas = viewport.getCanvas() || this.element.querySelector('canvas')
const imageData = viewport.getImageData()?.imageData const imageData = viewport.getImageData()?.imageData
const dimensions = imageData?.getDimensions?.() const dimensions = imageData?.getDimensions()
const imageWidth = dimensions?.[0] const imageWidth = dimensions?.[0]
const imageHeight = dimensions?.[1] const imageHeight = dimensions?.[1]
const canvasWidth = canvas?.clientWidth const canvasWidth = canvas?.clientWidth
@ -582,16 +583,17 @@ export default {
if (!imageWidth || !imageHeight || !canvasWidth || !canvasHeight) { if (!imageWidth || !imageHeight || !canvasWidth || !canvasHeight) {
viewport.render() viewport.render()
this.setFullScreen(index)
return return
} }
const fitScale = Math.min(canvasWidth / imageWidth, canvasHeight / imageHeight) const fitScale = Math.min(canvasWidth / imageWidth, canvasHeight / imageHeight)
if (fitScale > 0) { if (fitScale > 0) {
// zoom=1 fit-to-window 1:1
viewport.setZoom(1 / fitScale) viewport.setZoom(1 / fitScale)
} }
viewport.render() viewport.render()
this.setFullScreen(index)
}, },
voiChange(v) { voiChange(v) {
const renderingEngine = getRenderingEngine(this.renderingEngineId) const renderingEngine = getRenderingEngine(this.renderingEngineId)

View File

@ -59,10 +59,10 @@
<div v-if="series" class="right-bottom-text"> <div v-if="series" class="right-bottom-text">
<div v-show="imageInfo.location">Location: {{ <div v-show="imageInfo.location">Location: {{
`${Number(imageInfo.location).toFixed(digitPlaces)} mm` `${Number(imageInfo.location).toFixed(digitPlaces)} mm`
}}</div> }}</div>
<div v-show="imageInfo.sliceThickness">Slice Thickness: {{ <div v-show="imageInfo.sliceThickness">Slice Thickness: {{
`${Number(imageInfo.sliceThickness).toFixed(digitPlaces)} mm` `${Number(imageInfo.sliceThickness).toFixed(digitPlaces)} mm`
}}</div> }}</div>
<div v-show="imageInfo.wwwc">WW/WL: {{ imageInfo.wwwc }}</div> <div v-show="imageInfo.wwwc">WW/WL: {{ imageInfo.wwwc }}</div>
</div> </div>
<div class="orientation-top"> <div class="orientation-top">
@ -595,10 +595,11 @@ export default {
const renderingEngine = getRenderingEngine(this.renderingEngineId) const renderingEngine = getRenderingEngine(this.renderingEngineId)
const viewport = renderingEngine.getViewport(this.viewportId) const viewport = renderingEngine.getViewport(this.viewportId)
if (!viewport) return if (!viewport) return
let index = this.series.SliceIndex
if (forceFitToWindow) { if (forceFitToWindow) {
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true }) viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
viewport.render() viewport.render()
this.setFullScreen(index)
return return
} }
@ -613,6 +614,7 @@ export default {
if (!imageWidth || !imageHeight || !canvasWidth || !canvasHeight) { if (!imageWidth || !imageHeight || !canvasWidth || !canvasHeight) {
viewport.render() viewport.render()
this.setFullScreen(index)
return return
} }
@ -622,6 +624,7 @@ export default {
} }
viewport.render() viewport.render()
this.setFullScreen(index)
}, },
voiChange(v) { voiChange(v) {
const renderingEngine = getRenderingEngine(this.renderingEngineId) const renderingEngine = getRenderingEngine(this.renderingEngineId)