Преобразование URL-адреса блоба изображения в base64 - PullRequest
0 голосов
/ 09 июля 2019

У меня есть этот код из библиотеки, и я хотел преобразовать часть изображения в base64.

Но я продолжаю иметь ошибку при преобразовании BLOB-объекта в base64.

Это локальный html-файл, размещенный на устройстве.

      <div class="widget file-picker"><input class="ignore fake-file-input"
      placeholder="Click here to upload file. (< 5MB)" readonly=""><button class="btn-icon-only btn-reset"
      aria-label="reset" type="button"><i class="icon icon-refresh"> </i></button><a
      class="btn-icon-only btn-download" aria-label="download"
      download="image-1562651713366.jpg389038873-13_55_28.jpg"
      href="blob:file:///3efb6b21-718c-48d2-8fa1-f59520228804"><i class="icon icon-download"> </i></a>
    <div class="file-feedback "></div>
    <div class="file-preview"><img src="blob:file:///3efb6b21-718c-48d2-8fa1-f59520228804"></div>
  </div>

Вот пример кода при конвертации img в base64. Кажется, он не работает с URL-адресами BLOB-объектов.

var someimage = $(".file-preview").find("img");
var canvas = document.createElement("canvas");
canvas.width = someimage.width;
canvas.height = someimage.height;
canvas.getContext("2d").drawImage(someimage, 0, 0);
dataURI = canvas.toDataURL();

1 Ответ

1 голос
/ 09 июля 2019

Обновлено, чтобы включить комментарий от Рори МакКроссан

Подождите, пока изображение загрузится, и учтите, что someimage является объектом jQuery

var someimage = $(".file-preview").find("img");
someimg.on("load", function () { 
    var canvas = document.createElement("canvas");
    canvas.width = someimage.width;
    canvas.height = someimage.height;
    canvas.getContext("2d").drawImage(someimage[0], 0, 0);
    dataURI = canvas.toDataURL();
}
...