Base64编码图像

时间:2008-08-30 11:01:32

标签: php encoding base64 opensearch

我正在为Firefox / IE构建一个开放式搜索插件,并且图像需要是Base64编码的,那么我如何才能对我所拥有的图标进行64编码?

我只熟悉PHP

5 个答案:

答案 0 :(得分:78)

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

您也可以使用PHP来执行此操作:

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

使用Mozilla's guide获取有关创建OpenSearch插件的帮助。例如,icon元素的使用方式如下:

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

imageData是您的base64数据。

答案 1 :(得分:12)

$encoded_data = base64_encode(file_get_contents('path-to-your-image.jpg'));    

答案 2 :(得分:8)

rfc2397的概要是:

一旦你的base64编码图像数据被放入&lt; Image&gt;&lt; / Image&gt;带有“data:{mimetype};base64,”前缀的标签这类似于CSS中url()定义的括号中的前缀或src标签的img属性的引用值在[X] HTML中。您可以通过将data:image/...行放入URL字段并按Enter键来测试firefox中的数据网址,它应该显示您的图像。

对于实际编码,我认为我们需要检查所有选项,而不仅仅是PHP, 因为有很多方法可以对base64进行编码。

  1. 使用base64命令行工具。它是GNU coreutils(v6 +)的一部分,几乎默认为CygwinL i n u x,{{3安装,但不是我试过的BSD。问题:$ base64 imagefile.ico > imagefile.base64.txt
  2. 使用具有转换为base64选项的工具,例如GnuWin32具有插件下的功能 - &gt; MIME工具 - &gt; base64 Encode
  3. 给自己发送电子邮件,查看原始电子邮件内容,复制并粘贴。
  4. 使用Notepad++ web
  5. 关于mime类型的说明: 我希望您使用image/png image/jpegimage/gif之一作为form广受欢迎的image/x-icon。那应该是image/vnd.microsoft.icon吗? 其他格式也要短得多。

    比较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==
    

答案 3 :(得分:6)

检查以下示例

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

答案 4 :(得分:0)

谷歌带我到this解决方案(base64_encode)。希望这有帮助!