关于php:Base64编码图像

关于php:Base64编码图像

Base64 Encoding Image

我正在为Firefox / IE构建一个开放式搜索附加组件,并且该图像需要经过Base64编码,因此如何对64位的我的网站图标进行base编码?

我只熟悉PHP


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

您也可以使用PHP来做到这一点:

1
2
3
4
 <?php
        $im = file_get_contents('filename.webp');
        $imdata = base64_encode($im);      
?>

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

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

imageData是您的base64数据。


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

我对rfc2397的简介是:

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

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

  • 使用base64命令行工具。它是GNU coreutils(v6)的一部分,几乎在任何Cygwin,Linux,GnuWin32安装中都是默认设置,但不是我尝试过的BSD。问题:$ base64 imagefile.ico > imagefile.base64.txt
  • 使用带有选项以转换为base64的工具,例如记事本,其功能在plugins-> MIME tools-> base64 Encode下
  • 通过电子邮件将文件发送给自己,并查看原始电子邮件内容,然后进行复制和粘贴。
  • 使用网络表单。
  • 关于mime类型的注释:
    我希望您使用image/png image/jpegimage/gif之一,因为我找不到流行的image/x-icon。应该是image/vnd.microsoft.icon吗?
    其他格式也要短得多。

    比较265个字节和1150个字节:

    1
    2
    3
    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==

    检查以下示例:

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

    Google引导我使用了该解决方案(base64_encode)。希望这会有所帮助!


    推荐阅读

      linux访问网站的命令?

      linux访问网站的命令?,地址,系统,服务,工作,网站,命令,网络,管理,信息,网址,L

      linux命令改变编码?

      linux命令改变编码?,系统,文件,工作,代码,工具,命令,字符集,格式,以下,方式,l

      linux命令行登陆网站?

      linux命令行登陆网站?,网站,系统,密码,服务,地址,环境,网络,软件,状态,项目,

      修改linux编码命令?

      修改linux编码命令?,系统,文件,命令,情况,标准,工作,格式,字符集,以下,方式,l

      linux登陆网站命令?

      linux登陆网站命令?,网络,工具,网站,标准,地址,软件,系统,命令,数据,环境,lin

      linux命令打开网站?

      linux命令打开网站?,网络,网站,系统,地址,密码,传播,工具,代码,环境,命令,大

      linux安装组件包命令?

      linux安装组件包命令?,软件,官网,服务,系统,工具,发行,工作,信息,名称,命令,L

      linux命令行登录网站?

      linux命令行登录网站?,系统,网站,地址,工作,软件,密码,网络,第一,环境,中心,

      linux图像查看器命令?

      linux图像查看器命令?,工作,信息,设备,系统,图片,地址,文件,命令,目录,一致,L

      linux命令查询网站?

      linux命令查询网站?,地址,网络,信息,名称,档案,工具,网站,命令,传播,分析,lin

      linux改文件编码命令?

      linux改文件编码命令?,系统,数据,地方,命令,文件,名称,工作,工具,格式,字符

      linux下备份网站命令?

      linux下备份网站命令?,工程,系统,软件,设备,服务,网站,管理,数据,环境,设计,

      linux编码命令大全?

      linux编码命令大全?,系统,工作,信息,地址,命令,基础,目录,基础知识,时间,常

      linux命令连接网站?

      linux命令连接网站?,网络,系统,信息,地址,名称,密码,设备,软件,网站,工具,Lin

      Python 中文编码

      Python 中文编码,代码,培训,中文,你好,文件,世界,格式,实例,以上,结果,前面

      PEP8 Python 编码规范

      PEP8 Python 编码规范,异常,代码,名字,标准,培训,空格,注释,方式,模块,函数

      解决Python编码问题

      解决Python编码问题,系统,数据,分析,代码,密码,字符,字节,字符集,方法,培训