Php Base64编码图像

Php Base64编码图像,php,encoding,base64,opensearch,Php,Encoding,Base64,Opensearch,我正在为Firefox/IE构建一个开放式搜索插件,图像需要Base64编码,那么如何对现有的favicon进行Base64编码呢 我只熟悉PHP谷歌让我找到了解决方案(base64_encode)。希望这有帮助 据我所知,图像数据有一个xml元素。您可以使用它对文件进行编码(使用上载字段)。然后将数据复制并粘贴到XML元素中 您也可以使用PHP这样做: <?php $im = file_get_contents('filename.gif'); $imd

我正在为Firefox/IE构建一个开放式搜索插件,图像需要Base64编码,那么如何对现有的favicon进行Base64编码呢


我只熟悉PHP

谷歌让我找到了解决方案(base64_encode)。希望这有帮助

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

您也可以使用PHP这样做:

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

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

<img width="16" height="16">data:image/x-icon;base64,imageData</>
数据:图像/x图标;base64,图像数据
其中,
imageData
是您的base64数据。

我的简介是:

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

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

  • 使用
    base64
    命令行工具。它是GNUCoreutils(v6+)的一部分,在任何安装中几乎都是默认的,但不是我尝试的BSD。问题:
    $base64 imagefile.ico>imagefile.base64.txt
  • 使用一个具有转换为base64选项功能的工具,比如在插件->MIME工具->base64编码下具有该功能的工具
  • 通过电子邮件发送文件,查看原始电子邮件内容,复制并粘贴
  • 使用一个
  • 关于mime类型的说明: 我希望您使用
    image/png
    image/jpeg
    image/gif
    中的一种作为流行的
    image/x图标
    。应该是
    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==
    

    检查以下示例:

    // 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 .'" />'
    
    //首先获取您的图像
    $imgPath='path to your picture/image.jpg';
    $img=base64_编码(文件获取内容($imgPath));
    回声“
    
    base64\u在这种情况下,我相信,如果有的话,编码只会对图像的“资源句柄”进行编码。您需要读入文件的实际内容。不过,仅仅使用base64编码器网站就可以了。这对我来说根本不起作用
    $im
    是一个
    资源
    ,我得到一个错误
    base64_encode()期望参数1是字符串,资源给定
    上述注释是指以前的编辑,hakre修复了我的错误@stevether现在应该可以了。
    在哪里
    imageData
    是您的base64数据,我在Chromeyes中,我知道如何对其进行编码,但如何只获取其中的图像数据进行编码。@davidcorda-简洁是可以接受的,但更完整的解释更好。
    // 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 .'" />'