0

我正在使用 Openseadragon 显示大图像,其中一些图像在 IE 11 和 Edge 中出现“SCRIPT5022:IndexSizeError”错误消息。

它适用于小图像(1024 x 656 像素),但不适用于任何较大的图像(例如 2981 x 4123)。任何其他浏览器在所有情况下都可以正常工作。

我正在使用 'legacy-image-pyramid' 类型的源。

我的 Openseadragon 配置:

viewer = OpenSeadragon({
id:                   'openseadragon',
toolbar:              'viewer-toolbar',
maxZoomLevel:         5,
minZoomLevel:         0,
preload:              true,
sequenceMode:         false,
tileSources:          SOURCE,
crossOriginPolicy:    'Anonymous',
// buttons
zoomInButton:         'zoom-in',
zoomOutButton:        'zoom-out',
showRotationControl:  true,
rotateLeftButton:     'rotate-left',
rotateRightButton:    'rotate-right',
homeButton:           'home',
showFullPageControl:  false,
rotateleftButton:     'rotate-left',
rotaterightButton:    'rotate-right',
// gestures
gestureSettingsMouse:   {
  clickToZoom:        false,
  dblClickToZoom:     true,
  pinchToZoom:        true,
  pinchRotate:        true
},
gestureSettingsTouch: { pinchRotate: true }
});

大图源代码(失败):

var SOURCE = [
    {
      type: 'legacy-image-pyramid',
      levels: [{
        url: 'https://rgw.atolcd.com/swift/v1/sillon_container_test/entrepot/B574636101_Prev36_18930411_0001.jpg',
        height: 4123,
        width: 2981
      }]
    }
];

小图源代码(作品):

var SOURCE = [
    {
      type: 'legacy-image-pyramid',
      levels: [{
        url: 'https://rgw.atolcd.com/swift/v1/sillon_container_test/entrepot/carte1.jpg',
        height: 656,
        width: 1024
      }]
    },
  ];

我发现了这个问题(https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/16192680/IE 上 drawImage 上的 IndexSizeError 和带有 IE11/Edge 的 Edge (显然在最新版本的 Edge 中得到修复) ) 如果 drawImage 参数错误,但 OpenSeadragon 的值很好。(并且适用于小图像,所以它应该适用于任何图像?)。

我尝试了另一种源类型(图像平铺源),但同样的错误。

如果我禁用画布并改用 img(在选项中使用 useCanvas: false),它会起作用,但这对我来说不是解决方案(它破坏了我的查看器实现)。

4

0 回答 0