首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从受污染的画布下载图像;如何下载托管在亚马逊s3存储桶中的Seadragon图像?

无法从受污染的画布下载图像;如何下载托管在亚马逊s3存储桶中的Seadragon图像?
EN

Stack Overflow用户
提问于 2014-09-20 03:26:10
回答 1查看 636关注 0票数 1

我有一堆深度缩放图像存储在亚马逊s3桶中,我有一个网页,用Open Seadragon dzi查看器显示它们。我可以显示图像,但无法下载它们;我收到安全错误,即我的画布已被污染。

我在存储桶中设置了CORS配置:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

这允许我显示图像(之前我的OpenSeadragon调用失败,因为没有访问控制允许原始头),但我的画布仍然受到污染。

我尝试在seadragon查看器中设置crossOrigin策略:

代码语言:javascript
复制
var viewer = OpenSeadragon({
        crossOrigin: "Anonymous",
        id: "databaseviewer",
        prefixUrl: "../../Scripts/openseadragon/images/",
        tileSources: url,
        maxZoomLevel: 20
    });

但这并没有改变任何事情。这是我的完整脚本:

代码语言:javascript
复制
var url = '@Model.ImageUrl';

var viewer = OpenSeadragon({
    crossOrigin: "Anonymous",
    id: "databaseviewer",
    prefixUrl: "../../Scripts/openseadragon/images/",
    tileSources: url,
    maxZoomLevel: 20
});

viewer.addHandler('open', function() {                  
    var downloadlink = document.getElementById("download");
    $(downloadlink).on("click", function() {
        var img = viewer.drawer.canvas.toDataURL("image/png");
        downloadlink.href = img;
        downloadlink.download = '@Model.DatabaseName';
    });
});
EN

回答 1

Stack Overflow用户

发布于 2014-12-01 16:06:17

根据API documentation,您应该将策略选项重命名为crossOriginPolicy

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25941066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档