当前位置: 首页 > 面试题库 >

如何从AngularJS中的$ http.get返回图像

毕富
2023-03-14
问题内容

在我的控制器中,我调用返回承诺的服务

var onComplete = function(data) {
               $scope.myImage = data;           
            };

在我的服务中,我通过直接将url传递给图像本身来获取图像:

   return $http.get("http://someurl.com/someimagepath")
         .then(function(response){          
          return response.data;
         });

所有调用都成功,并且response.data似乎保存在以下图像中:

����JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 90
��C




��C

����"�� 
���}!1AQa"q2���#B��R��$

虽然我不确定它是否确实可以,因为我无法显示它。我已经尝试过(在index.html内部)

 <img ng-src="{{myImage}}"> 
  and
<img ng-src="{{myImage}}.jpeg"> 
  and   
 <img ng-src="data:image/JPEG;base64,{{myImage}}">

有想法吗?是否可以从$ http.get返回实际图像并将其响应转换回图像(jpeg等)

谢谢!


问题答案:

返回的图像采用二进制编码,而不是Base64。

可以理解的是,<img>标签不支持从二进制到属性的采购,因此您必须考虑另一种解决方案。

您可以尝试使用TypedArrays和btoa函数在客户端将二进制编码转换为Base64 。这样您就可以使用

<img ng-src="data:image/JPEG;base64,{{myImage}}">

Mozilla的本指南涵盖了对XHR请求和图像的要求,并将其直接读入UInt8Array。它应该是一个很好的起点。

它是为普通的旧Javascript编写的,但是如果您只是在学习绳索,将其翻译为Angular应该是一个不错的练习。



 类似资料:
  • 问题内容: 我对此有很多麻烦,在SO或Google上似乎找不到任何可以帮助我发现自己在做错事情的东西。 的作品,但是当我尝试返回温度,其空。我已经尝试了各种方法来使它起作用,但是我似乎无法在函数中设置temp值 这可能是简单的事情(或者我这是一个愚蠢的错误/误导方法)。任何建议将不胜感激 问题答案: 使用延迟:

  • 问题内容: 我正在为教练创建一个网站,以通过使用社交媒体帮助人们拥有更健康的生活。目前,我正在通过ExpressJS服务器中的OAuth(前端为AngularJS)访问Twitter。 从AngularJS网站: 在200到299之间的响应状态代码被视为成功状态,并将导致调用成功回调。请注意,如果响应是重定向,则XMLHttpRequest将透明地跟随它,这意味着不会为此类响应调用错误回调。 我的

  • 问题内容: 我的服务是: 我通过以下方式在我的文件中调用它: 但是,它抱怨这不是一个功能。我不退还已解决的承诺吗? 问题答案: 从您的服务方式: 在您的控制器中:

  • 我试图从一个片段中更改另一个片段中的。但是由于没有container就无法做到这一点,我不得不使用方法创建另一个值。然后我需要使用inflater方法返回这些视图值。如何返回两个视图? 代码是在一个片段中编写的:

  • 问题内容: 例如,此URL: 应该返回一个类型的响应。我有两个静态图片, 如果type为1,则应该返回,否则返回。在烧瓶中怎么做? 问题答案: 你使用类似 发送回或,具体取决于类型查询参数。有关更多信息,请参见函数和对象的文档。

  • 我有base64字符串,我想使用Spring的RESTController在img标记上打印base64图像。 图像不输出。有什么问题?