Сохранение элемента canvas - PullRequest
       5

Сохранение элемента canvas

0 голосов
/ 17 февраля 2019

Я обнаружил, что могу загрузить содержимое элемента <canvas> в файл, используя следующий скрипт:

var download = function(){

    var link = document.createElement("a");
    link.download = 'filename.png';
    link.href = cvs2.toDataURL();
    link.click();
}

Однако при использовании этого метода в Chrome (android), похоже, он имеетзагрузил файл в личную папку Chrome на моем устройстве.Мне нужно, чтобы содержимое холста загружалось в виде файла изображения в обычную папку загрузки (например, /sdcard/Downloads).

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Попробуйте использовать метод toBlob() в элементе canvas, чтобы сначала получить файл / большой двоичный объект содержимого холста.Затем используйте createObjectURL() и revokeObjectURL() методы URL API , как показано, чтобы получить и назначить соответствующий url для вашей временной ссылки на скачивание:

var download = function(filename, mimeType) {

  /* Use toBlob to get a file from the canvas element */
  canvas.toBlob(function(blob) {

    /* Get url for this file blob */
    var url = URL.createObjectURL(blob);

    /* Create temporary link and start download */
    var link = document.createElement("a");    
    link.download = filename;
    link.href = url;
    link.click();

    /* Clean up */
    URL.revokeObjectURL(url);

  }, mimeType);
}

/* Usage example */
download('my-filename.png', 'image/png')

Надеждаэто помогает!

0 голосов
/ 17 февраля 2019

Для хрома вы можете использовать donwloads.download ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...