2014-09-12 3 views
0

UPDATE: У меня есть загрузка изображений, но это всегда скачивание пустое:Загрузка изображения с холста; не может получить данные

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.

Here is a fiddle, чтобы воспроизвести проблему.

У меня есть ссылка для скачивания и ссылка для печати, хотя сейчас они оба делают то же самое. Я пытаюсь получить 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(); 

Консоль.log проверяет, что у меня есть объект canvas на моей странице. Почему я не могу получить URL-адрес изображения?

Я также попытался получения изображения в функции 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); 
} 

но консоль говорит «Uncaught TypeError: Не удается прочитать свойство„холст“пустому

ответ

0

Вы, наверное, хотите, чтобы получить холст непосредственно от зрителя, чтобы вы убедитесь, что вы имеете право один, но вы должны ждать открытого мероприятия, как вы сделали в Downloading image from a canvas: downloaded image is blank

BTW, есть еще обсуждение этого здесь:

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

Смежные вопросы