简体   繁体   English

将图像 blob url 转换为 base64

[英]Converting image blob url to base64

I have this code from a library and I wanted to convert the image part to base64.我有一个库中的代码,我想将图像部分转换为 base64。

But I keep on having error on converting blob to base64.但是我一直在将 blob 转换为 base64 时出错。

It is a local html file hosted on the device.它是托管在设备上的本地 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>

Here is may sample code on converting img to base64.这是将 img 转换为 base64 的示例代码。 It seems its not working on blob urls.似乎它不适用于 blob url。

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();

Updated to incorporate the comment from Rory McCrossan更新以纳入Rory McCrossan的评论

Wait for the image to load and be aware that someimage is a jQuery object等待图像加载并注意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();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM