如何将实时图像 url 转换为角度的 blob? [复制]

Posted

技术标签:

【中文标题】如何将实时图像 url 转换为角度的 blob? [复制]【英文标题】:How to convert live image url into blob in angular? [duplicate] 【发布时间】:2019-08-27 02:40:50 【问题描述】:

我在 Angular 7 中工作,我的要求是我需要获取图像的 WidthHeightSize (in how much kb or mb),并且我还试图将其转换为 blob

我尝试了以下代码,但没有得到准确的输出:

var img_url = "http://snook.ca/files/mootools_83_snookca.png";


 var blob = new Blob([img_url]);

 let reader = new FileReader;

 reader.readAsDataURL(blob); // read file as data url
 reader.onload = () =>  // when file has loaded
    console.log(reader.result)
    var img:any = new Image();
    img.src = reader.result;

    img.onload = () => 

      this.uploaded_image_width = img.width; //to get image width
      this.uploaded_image_height = img.height;  //to get image height           

      this.uploaded_image_url = reader.result; //to get blob image
      console.log(reader.result)          
    ;          
   

当我正在安慰 blob 数据出错 (console.log(reader.result)) 并且内部 img.onload 函数未执行时。

我提到了这个小提琴来实现这一点: http://jsfiddle.net/guest271314/9mg5sf7o/

【问题讨论】:

您使用的是哪个版本的 Angular? 您必须设置图像的来源才能加载它。 onload 仅在图像具有 src 时调用。这里的问题是你在声明钩子之前已经设置了源:将线移到钩子下面,你应该没问题! 那是音频而不是图像,但实际上是一样的。 我正在使用 Angular 7 @TheParam 请看清楚我的问题,这不一样@Kaiido 【参考方案1】:

你可以这样试试。希望对你有帮助

var img = new Image();
img.onload = function()
    alert( this.width+' '+ this.height );
;
img.src = "http://lorempixel.com/output/city-q-c-250-250-1.jpg";

【讨论】:

如何获取该图像的 blob 值?? 首先您需要将图像转换为base64,然后再将base64转换为blob 这是将图像转换为blob的示例lin:gist.github.com/davoclavo/4424731

以上是关于如何将实时图像 url 转换为角度的 blob? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 blob 转换为图像并在 React 上显示?

如何将图像转换为 url?

React-native - 使用已转换为 URL 的 Blob 填充图像

如何获取和显示 blob 图像

使用 JavaScript 将 png 图像转换为 blob 图像?

如何将 blob 图像从数据库转换为 html 图像 src