0

更新:我有图像下载,但它总是下载空白:

function seadragon(){
var url = "http://26.img.americanancestors.org/8e09e1f1-e1e9-4414-a0f5-86a6f09454a2.xml";

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

viewer.addHandler('open', function() {
                var img = viewer.drawer.canvas.toDataURL("image/png");
                console.log(img);
                var downloadlink = document.getElementById("download");
                downloadlink.href = img;
                downloadlink.download = 'SeadragonImage';

            });
}

seadragon();

--------更新结束

我有一个使用 Open Seadragon 显示深度缩放图像的页面。

这是重现该问题的小提琴。

我有一个下载链接和一个打印链接,尽管现在它们都做同样的事情。我正在尝试获取 imgurl;一旦我有了它,我想我知道如何下载它,但是 $(canvas).toDataURL() 不起作用。

function seadragon(){
    var url = "http://26.img.americanancestors.org/8e09e1f1-e1e9-4414-a0f5-86a6f09454a2.xml";

    var viewer = OpenSeadragon({
        id: "databaseviewer",
        tileSources: url,
        maxZoomLevel: 20
    });
}

$("a").on("click", function() {
        var canvas = $("canvas");
        console.log(canvas);
        imgurl = $(canvas).toDataURL();
        console.log(imgurl);
        });

seadragon();

console.log 正在验证我的页面上确实有一个画布对象。为什么我不能从中获取图片网址?

我还尝试在 seadragon 函数中检索图像:

function seadragon(){
    var url = "http://26.img.americanancestors.org/8e09e1f1-e1e9-4414-a0f5-86a6f09454a2.xml";

    var viewer = OpenSeadragon({
        id: "databaseviewer",
        tileSources: url,
        maxZoomLevel: 20
    });

    var img = viewer.drawer.canvas.toDataURL("image/png");
    console.log(img);
}

但控制台显示“未捕获的类型错误:无法读取 null 的属性‘画布’

4

1 回答 1

0

您可能确实想直接从查看器中获取画布,以确保您拥有正确的画布,但您必须等待打开事件,正如您在从画布下载图像中所做的那样:下载的图像为空白

顺便说一句,这里有更多的讨论:

https://github.com/openseadragon/openseadragon/issues/477

于 2014-09-15T16:30:02.930 回答