【问题标题】:Base64 Encoding ImageBase64 编码图像
【发布时间】:2008-08-30 11:01:31
【问题描述】:

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

我只熟悉PHP

【问题讨论】:

    标签: php encoding base64 opensearch


    【解决方案1】:

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

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

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

    使用Mozilla's guide 获取有关创建 OpenSearch 插件的帮助。例如,图标元素是这样使用的:

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

    imageData 是您的 base64 数据。

    【讨论】:

    • base64_encode 在这种情况下只会编码图像的“资源句柄”,我相信,如果有的话。您需要读入文件的实际内容。不过,只需使用那个 base64 编码器网站就可以了。
    • 这对我来说根本不起作用。 $imresource,我收到错误 base64_encode() expects parameter 1 to be string, resource given
    • 以上 cmets 指的是以前的编辑,hakre 修正了我的错误。 @stevether 现在应该可以了。
    • &lt;img src="data:image/x-icon;base64,imageData" width="16" height="16"&gt;imageData 是您的 base64 数据,我在 Chrome 中为我展示了它
    【解决方案2】:
    $encoded_data = base64_encode(file_get_contents('path-to-your-image.jpg'));    
    

    【讨论】:

    【解决方案3】:

    我对@9​​87654321@的简介是:

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

    对于实际编码,我认为我们需要检查所有选项,而不仅仅是 PHP, 因为base64编码的方法太多了。

    1. 使用base64 命令行工具。它是 GNU coreutils (v6+) 的一部分,在任何 CygwinLinuxGnuWin32 安装中几乎都是默认设置,但不是我尝试过的 BSD。问题:$ base64 imagefile.ico &gt; imagefile.base64.txt
    2. 使用具有转换为base64选项的工具,例如Notepad++,它具有插件->MIME工具->base64编码下的功能
    3. 通过电子邮件发送文件并查看原始电子邮件内容、复制和粘贴。
    4. 使用webform

    关于 mime 类型的说明: 我希望你使用 image/png image/jpegimage/gif 之一,因为我喜欢 can't find 流行的 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==
    

    【讨论】:

      【解决方案4】:

      检查以下示例:

      // 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 .'" />'
      

      【讨论】:

        【解决方案5】:

        Google 引导我找到this 解决方案(base64_encode)。希望这会有所帮助!

        【讨论】:

        • 是的,我知道如何对其进行编码,但如何仅获取其中的图像数据以对其进行编码。
        猜你喜欢
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-22
        • 2018-02-28
        • 2014-06-09
        • 1970-01-01
        相关资源
        最近更新 更多