【问题标题】:raw image data to base64原始图像数据到base64
【发布时间】:2017-01-04 11:21:31
【问题描述】:

我正在使用此功能将原始图像转换为base64,但无法生成图像。

这里是 plunker:https://plnkr.co/edit/pn9xNwgR3p1RDqZhVNne?p=preview

  <body>
    <img src="" id="myimage" />
    <script src="script.js"></script>
    <script src="jpegEncoder.js"></script>

    <script>
      var rawImage = "����JFIF���&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#9;&#9;��``&quot;����?&#9;!1AQaq2B���&quot;#RT����br��3����������0&#9;!1A2Qaq�&quot;��BRS�����?���Kѐ�V��,���fu0�AկQ�w���y�x��i�|��F?���;҆�X����������(+:s��iud���c�Gf�e7�jI�;N�d�%�f����+�Uh4q;Ĭ!9ȨD��[��5�ކ�;h��gCt�͌��و1J��q�a��S��^�V���R�����U��K6�&lt;��&quot;�U��~&quot;u�|Q&#10;��c�F�IoZЩX���4����\��]Kp�3K'�(#�G�ր^�d���f�FU=#C\@9�Q��g�ݠ�8Ϧ����m���fq$�jMq;���LW����+�&#13;ڵ��G���;}�ђ׊��&lt;���sX���&gt;j���hk���~+�^����3�q4��P؝�oZ������4��P{O-j�]�d�c��pG��&lt;7��Q������zd{n��|�`�mɊ��SN�D����}�Hv��0PY�&lt;\�#�T�k!0�R(�Um�n��e�&gt;�a욶˽�8P����{�)���&quot;����;#~,&lt;+��iA����!�nխ]f�We��q��&#13;�4��}����6�`���T��!wY�� ��4�y�����+�A]U�M�ֻ⼪�d�N��EcQ`a�u�R��Z&quot;�e/���;-�vL�&lt;c���IH&quot;W2Ga���Ӄ⬨�cݻ#q��c�Y䣃F�G�$�0:�z�&quot;&#9;1���S�R�WCh��a���@%#��$�i�y�u��[�6Ή����(c�Sw˻�G��X3����R��n'�m+&gt;����'�/;�%�k�4��Z�/l^�z�/l^�z��Z�}k^��!������O����������Dzx�&quot;��&gt;��û#&gt;�#\~{�L-D�k��T�L��O=�I��\Qy$�1�'&lt;��=�����uR�b�&#13;���({�TAr9����g}׎��y�{Լ�.�у�8���^��6��&quot;9+��k��K�V�6�����p�¦�Y�~%b�F�lX����_���v����_�O����A�+�G��e]Q*���z��G|�Y{��f��Y�CI�qu*p�v�T�Z�%0�J4�l�3�ɖ�yF���&quot;�5�\�@ܧ���&#13;*R�Kx��c��Is�D�Y�-���O$��!�`��4M���VX�@v�g��U�̦��2E�W��s�7=}z#��Ԯ� c���t^��n|R2H΋�� |�����w�k�9��ٵ�o1�U��nC�r@���7���wZ��-�!n����v�p���P�h_dR�����O5�ޟ���&lt;U����&#13;�*&quot;̙����7-rr�{��&lt;��3��#O�S;:/~�&quot;f~Ϋ;IǸ,�V�[Kv�\���՗c���d4`6��ѣ��Õ]&lt;ϚN��&lt;��r/Fug&lt;֧���ӢуZ�&gt;z�Cܟ{'c��ˏO��jB��o �����c5�:�6:H�Ώ�c�S&lt;�}{���,���o�_8תޫ|{Qm~�kU w��Zi����5B��vƮ�Y�5�Hǽ��U6�^�VKd)��FZ��ʗ���ݹ�E�]tV��&#13;&quot;�� y���a�%���h�����=v�&amp;5� �ג3䒮i�Wq�#�$J  �ǖ+��`4&quot;&#13;U_c+�T&#9;D����JY!Mhv�1�N Q���ǘH��e�#�!��/X��GO��iC�8&gt;ȅ:���`$���H��m&#13;!� ��H�Op��)�&amp;Q���P۷��'�;S�������";
      var encoder = new JPEGEncoder(9);
      var jpgFile = encoder.encode(rawImage, 9);
      console.log('jpgFile: ', jpgFile);
      document.getElementById("myimage").src =jpgFile;
    </script>
  </body>

我得到这个输出:data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAFk9Q05DOFlOSE5kXllp…rCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP8A/9k=

我在 ajax 调用 google contacts api 时收到的原始图像数据

和编码有什么关系吗?

更新

当我直接使用url点击api时:https://www.google.com/m8/feeds/photos/media/kookootalk%40gmail.com/3e98af288ff825f7?access_token=ya29.CjDJA08-At3FiI0G1yXER2a-bWpScqI9vcopzjSjXe62CnvlrFMMq0noIghnPdxd1Yk

&lt;img src="https://www.google.com/m8/feeds/photos/media/kookootalk%40gmail.com/3e98af288ff825f7?access_token=ya29.CjDJA08-At3FiI0G1yXER2a-bWpScqI9vcopzjSjXe62CnvlrFMMq0noIghnPdxd1Yk" /&gt;

我正确获取了图像,如果我检查网络,我会找到原始图像数据作为响应:

`ÿØÿàJFIFÿÛ

ÿÀ``"ÿÄÿÄB !1"AQaq¡2BRb±3Sr¢ð£²Áá$csÂÃÒÿÄÿÄ2 !1AQaq¡ÁÑð2R±"#BbáÿÚ?¹p¡iÖ?&Í)§MjüÌÇ%QÅ/±7¤øéUø :à"h ATj9FuÅ(hlçhsìl¥ä½(¹´¢}êôO}A÷#±ßª\ôI%%È{~Óè}üªÕÂÍ[Órl¦3âaaçAb´) )PÀÓl´«3Af' zÆnÒõÝí³Ëâ$¡"J(µÅÈößy ¥¯Ú?XîJKéÛÓ)÷H}üW+hº×¸úúýAç®ÊF çS4jõ»ÇTp~¢2?ÛnùS¦êcTÈéð 5¸Æ$Ä»R5Ñjß'ï\^}ÓBçE"xÛ9Ñrpi%øW(i1 -|Bh4í" Z®+Ùó ±D%lçENÂLó{OY(jÞb#ºf]&¬Ú±§Ä3Sâ:ãDèÏBΠáók¥$d|½èÆ01>MQx7Ìc¡5Qàÿ1¼Ghº³ÀÓNÊ5Ù¬s±$È@¸r£Ú^4Íj1 ¥ª8 b8""¸®¡Hâç0_Ùc$T¼jnÝ95QÈPA-ñêÀöcTÝ'i°ÐÀìWo@]±é^Ý8×v[ KÙ(Q¿y|÷Ä6r9×qÙ¦§^5¸´Ù{Yجr:¼É®xrSQ}'cïÆäL ÐðÇõPZçïW M÷«[ëÂñì©Ê ÄIJõ¹gÙ_äOd¶6z6оÎZ_p+{¼ÄHÐúIA¾5Ð1t¯®XzÒúOaßå¯6¯LÙ¬æâ&ãºn®%K¨´ºHÄ@ Ã#õÏÎ< @jA ó¼ÒrLÈYZÍ iÀPF£"pRÙ¾3°²ÚMðû²æ>&¤}Â} ÙδµcxA PFëåÂÞÔæKnã¾)q I£®ÑB[Ñ Óöq¬eØG8äáþÙ?¥³IsdF?êK«yÓÂG%éà¶³oÎtæ·J/ÇJspïªSnÎ^MU=ùy4Ú=¨èy:ÿ°,ÉmÁ¸Ío5ÚR{»i¹WfÍ^+6bÕvÊ9"[¶]e[çQf0½E[ ÷ÇtDa¡®nÙiå î$yצ Óh¹Öaé©ã$¾âÍv¾éL6KâÉ>®OA4îÐ)îA÷Xñ3¾¡±ºY。"Ë+?¶½½û5úÊ¡´ÍDf&ÕfÖfû¢o¶=$ºzJÞUƵ" à-l 3fpä=©­¶{Æðjlëax+fãÆ1àRp¤3$ä;ÎI4pbIäÄ¡]ê?EýîÕDÅôG »Aö}£\ÁÄÒF7P+YÏpã_E¹ÕNÍæ¦Ö«7Eg'"/ûh>4¥­'né´ St :ÇyG0JÒ;p[Ù³ÃýÆÖ:éM(ÙaZº}F¸qÕy7¦¯»V=Ùy2^Ûcy!z)]ý¥uh¼¤µ(Þ»2räo|NÀìxE~¬]ËeYYVYH¨*ÂäFSv§ ©bS!É2ãUâ}´È×1Fâ@tÌ׿Ä.wÊÀÞü£²1á1¹·Üo4%ó*25qÆ6hɶ{3>Ä ©rÄÕ¼>Sz·¬'?¤D²YØ2ÉJÜiù˾Ç_Úc@£ 0è^c¬´w¨9³Áıº¥¡Ï%$®7Fó{NØ»óÅ«AÀPpþ^Ä}@¯Ô¬¹o«¾&MÙýw²mÃÔÓ¨ì(ðWSN1-Ô«¹¾_d{ÍOe!Aèã5©êHÿÄu!( KJyÑRúã!}O¥ºÊt)çYhÖ½_iÒf­änæV2Uî5ï U_Z´¨b Tm£ìþÑbbXNäåbpYÔ|;§Ì1x­RV©ÀAÌp ò0(×-Ù¦öw6w8Ü¥ùêJN[­t{1lýµJ¸èÂÁ+àvò>þu]#E¡à§vG¤¥e$MÔVürgpS&¤[fNI-f´ËÔgyUsf¼RíBA\ZG_í¤©[ª¾d®6[ ¶|*Øf®Tµ±Ç4ô3þ°Ìæ ·H×£4YEYi)Â"PðU®|Ï|:Y´æõnn@òo ¨t\Cdîõ´Åju#3ÚwÓq1Ý¡ôSÍ8[êòyýªè1s|òÉ

但问题是 url 内的令牌有过期时间最终链接会过期。

我不明白我收到的两个图像数据之间的区别,一个有效,另一个无效

【问题讨论】:

标签: javascript encoding google-contacts-api google-photos


【解决方案1】:

Contacts API 是一种安全同步 API,其使用方式与图像主机不同。当您的 OAuth 会话处于活动状态时,预期的使用模式是下载数据并可能以某种方式存储。对于可能是画布的 JavaScript 中的图像,或者在 data URI 中具有 base64 编码的 src 值的 img 标签。

我不确定您是如何在 JS sn-p 中获取第一张图片的,但我可以清楚地看到字符串中的 HTML 实体,因此在某些时候数据可能在被视为格式化文本时被损坏。

【讨论】:

猜你喜欢
  • 2016-05-25
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多