快速方案:
下面的脚本将使用 PHP 将映像转换为 base64:
(可选)要使用转换后的 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() 获取图像内容
这是提取文件内容的基本方法。
请注意,出于安全目的,将禁用网络托管。在这种情况下,我们还有两个选择。
file_get_contents()
选项 2:使用流处理程序获取图像内容
这是获取在大多数网络托管上不会被阻止的图像内容的另一种安全方法。
以 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/png
image/jpeg
{$base64_data}
是从映像中提取的 base64 数据。
例如,使用 png 图像格式:
echo '<img src="data:image/png;base64,iVBORw0KGgo.....">';
使用 PHP 输出为独立映像
使用此方法将使php页面显示页面,就好像它显示图像文件一样。