首页  >  文章  >  后端开发  >  如何直接在 PHP 中显示从二进制数据重新创建的图像?

如何直接在 PHP 中显示从二进制数据重新创建的图像?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-09 13:56:02177浏览

How to Display Recreated Images from Binary Data Directly in PHP?

在 PHP 中显示从二进制数据重新创建的图像

常见任务涉及检索和显示存储为二进制数据的图像。为了优化这个过程,最好在同一个脚本中处理和显示图像,而不需要外部存储或脚本。

解决方案:

PHP 提供了一个通过使用数据 URI 的解决方案。这些 URI 将二进制数据直接嵌入到 HTML 中,无需引用外部文件即可显示它们。

数据 URI 的语法如下:

data:[<MIME-type>][;charset="<encoding>"][;base64],<data>

其中:

  • MIME-type:指定嵌入数据的类型,例如“image/png”或"image/jpeg"。
  • charset:可选参数,指定数据的字符编码,通常为“base64”。
  • data:编码为 base64 的二进制数据。

要处理二进制数据,请使用适当的 PHP 函数(例如 gd_imagecreatefromstring())从二进制流加载图像。处理后,使用 imagepng() 或 imagejpeg() 将图像转换回二进制。

最后,使用 base64_encode() 将数据编码为 base64。然后,此编码数据可以用作 HTML 图像标签的源:

<?php
function data_uri($binary_data, $mime_type)
{
  return 'data:' . $mime_type . ';base64,' . base64_encode($binary_data);
}

// Get binary data of image
$imagedata = get_binary_data();

// Process image
$processed_imagedata = process_image($binary_data);

// Display image using data URI
echo '<img src="' . data_uri($processed_imagedata, 'image/png') . '" alt="Processed Image">';
?>

以上是如何直接在 PHP 中显示从二进制数据重新创建的图像?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn