PHP将图像转换为base64

PHP将图像转换为base64参考

快速方案:

下面的脚本将使用 PHP 将映像转换为 base64:

// 获取图像
$image = file_get_contents('image.png');


// 转换为base64
$base64_image = base64_encode($image);
 

(可选)要使用转换后的 base64 数据显示图像,请执行以下操作:

echo '<img src="data:image/png;base64,' . $base64_image . '">';

以下是有关转换过程的更多详细信息,以及将图像转换为base64数据并显示它的注释和替代方法。

为什么要将图像转换为 base64?

将图像转换为base64数据的主要目的是能够将图像数据从二进制格式传输和存储为ASCII格式。这样,我们可以更轻松地以文本格式显示或传输图像数据。

使用 base64 图像格式的另一个小好处是能够以文本格式使用其 base64 数据在网页上显示图像,而无需加载图像文件。因此,将重新计算 HTTP 请求的数目。

虽然如此,但使用图像的base64数据的实际数据传输实际上比二进制文件本身更多。转换后的 base64 格式的数据量将始终比原始二进制格式大 33% 左右。

总之,好处主要仅适用于小而小的图像(例如图标),这些图像将节省对网页的请求量。

使用 PHP 将图像转换为 base64

将映像转换为 base64 的主要步骤是:

  • 获取图像文件内容
  • 将其转换为 base64 数据

有多种方法可以获取图像文件内容。

选项 1:使用 file_get_contents() 获取图像内容

这是提取文件内容的基本方法。

// 从图像文件或URL获取图像内容
$imageData = file_get_contents('image.png');
 

请注意,出于安全目的,将禁用网络托管。在这种情况下,我们还有两个选择。

file_get_contents()

选项 2:使用流处理程序获取图像内容

这是获取在大多数网络托管上不会被阻止的图像内容的另一种安全方法。

// 打开图片或URL
$file = fopen('image.png', 'r');


// 使用流处理程序放置图像数据
$imageData = stream_get_contents($file);


// 关闭流并释放内存
fclose($file);
 

以 base64 格式显示图像

通常,我们希望以base64格式显示图像有两种方式:

  • 作为标记<img>
  • 使用 PHP 输出为独立映像

将 base64 格式的图像显示为 <img> 标记

我们可以通过以下格式传递 base64 数据来在 tag 中显示图像:<img>

echo ‘<img src=”data:{$image_mime_type};base64,{$base64_data}”>’;

Where

  • {$image_mime_type}是图像mimetype类型,例如。 对于 png 格式,对于 jpeg/jpg 格式。image/pngimage/jpeg
  • {$base64_data}是从映像中提取的 base64 数据。

例如,使用 png 图像格式:

echo '<img src="data:image/png;base64,iVBORw0KGgo.....">';

使用 PHP 输出为独立映像

使用此方法将使php页面显示页面,就好像它显示图像文件一样。


// 设置标题为我们想要的图像mimetype
header("Content-type: image/png");


// 使用提取的base64图像数据显示图像
echo base64_decode($imageData);

给TA打赏
共{{data.count}}人
人已打赏
其他文章源码分享

B站UP主实时信息(粉丝、作品、头像、播放量等)获取展示平台系统PHP源码

2022-9-5 15:24:09

技术教程源码分享

Daen的千寻微信机器人框架开源

2022-9-5 22:03:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索