English 中文(简体)
Base64编码图像
原标题:
  • 时间:2008-08-30 11:01:31
  •  标签:

我正在为Firefox/IE构建一个开放式搜索插件,图像需要Base64编码,所以我如何对我拥有的最喜欢的图标进行Base64编码?

我只熟悉PHP

最佳回答

据我记忆所及,图像数据中有一个xml元素。您可以使用此网站对文件进行编码(使用上传字段)。然后只需将数据复制并粘贴到XML元素中。

您也可以使用PHP这样做:

 <?php
        $im = file_get_contents( filename.gif );
        $imdata = base64_encode($im);      
?> 

使用Mozilla指南获取有关创建OpenSearch插件的帮助。例如,图标元素的使用方式如下:

<img width="16" height="16">data:image/x-icon;base64,imageData</>

其中<code>imageData</code>是您的base64数据。

问题回答
$encoded_data = base64_encode(file_get_contents( path-to-your-image.jpg ));    

我的rfc2397为:

一旦你得到了base64编码的图像数据,就把它放在<;图片></图片>;以“data:{mimetype};base64,”为前缀的标记,这类似于CSS中url()定义的括号中的前缀,或[X]HTML中img标记的src属性的引号中的前缀。您可以在firefox中测试数据url,方法是将<code>data:image/行进入URL字段,然后按enter键,它应该会显示您的图像。

For actually encoding I think we need to go over all your options, not just PHP, because there s so many ways to base64 encode something.

  1. Use the base64 command line tool. It s part of the GNU coreutils (v6+) and pretty much default in any Cygwin, Linux, GnuWin32 install, but not the BSDs I tried. Issue: $ base64 imagefile.ico > imagefile.base64.txt
  2. Use a tool that features the option to convert to base64, like Notepad++ which has the feature under plugins->MIME tools->base64 Encode
  3. Email yourself the file and view the raw email contents, copy and paste.
  4. Use a web form.

A note on mime-types: I would prefer you use one of image/png image/jpeg or image/gif as I can t find the popular image/x-icon. Should that be image/vnd.microsoft.icon? Also the other formats are much shorter.

将265字节与1150字节进行比较:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAVFBMVEWcZjTcViTMuqT8/vzcYjTkhhTkljT87tz03sRkZmS8mnT03tT89vTsvoTk1sz86uTkekzkjmzkwpT01rTsmnzsplTUwqz89uy0jmzsrmTknkT0zqT3X4fRAAAAbklEQVR4XnXOVw6FIBBAUafQsZfX9r/PB8JoTPT+QE4o01AtMoS8HkALcH8BGmGIAvaXLw0wCqxKz0Q9w1LBfFSiJBzljVerlbYhlBO4dZHM/F3llybncbIC6N+70Q7OlUm7DdO+gKs9gyRwdgd/LOcGXHzLN5gAAAAASUVORK5CYII=

data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD/////ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv///////////2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb///////////9mZmb/ZmZm//////////////////////////////////////////////////////9mZmb/ZmZm////////////ZmZm/2ZmZv//////ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv//////ZmZm/2ZmZv///////////2ZmZv9mZmb//////2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb//////2ZmZv9mZmb///////////9mZmb/ZmZm////////////////////////////8fX4/8nW5P+twtb/oLjP//////9mZmb/ZmZm////////////////////////////oLjP/3eZu/9pj7T/M2aZ/zNmmf8zZpn/M2aZ/zNmmf///////////////////////////////////////////zNmmf8zZpn/M2aZ/zNmmf8zZpn/d5m7/6C4z/+WwuH/wN/3//////////////////////////////////////+guM//rcLW/8nW5P/x9fj//////9/v+/+w1/X/QZ7m/1Cm6P//////////////////////////////////////////////////////7/f9/4C+7v8xluT/EYbg/zGW5P/A3/f/0933/9Pd9//////////////////////////////////f7/v/YK7q/xGG4P8RhuD/MZbk/7DX9f//////4uj6/zJh2/8yYdv/8PT8////////////////////////////UKbo/xGG4P8xluT/sNf1////////////4uj6/zJh2/8jVtj/e5ro/////////////////////////////////8Df9/+gz/P/////////////////8PT8/0944P8jVtj/bI7l/////////////////////////////////////////////////////////////////2yO5f8jVtj/T3jg//D0/P///////////////////////////////////////////////////////////3ua6P8jVtj/MmHb/+Lo+v////////////////////////////////////////////////////////////D0/P8yYdv/I1bY/9Pd9///////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

检查以下示例:

// First get your image
$imgPath =  path-to-your-picture/image.jpg ;
$img = base64_encode(file_get_contents($imgPath));
echo  <img width="100" height="100" src="data:image/jpg;base64, . $img . " /> 

谷歌引导我进入这个解决方案(base64_encode)。希望这能有所帮助!





相关问题
热门标签