一尘不染

php:从二进制数据重新创建并显示图像

php

是否可以从二进制数据重新创建图像(如果需要,可以对其进行处理)并显示在同一脚本中?就像是

// get and display image 1:
$imagedata1 = file_get_contents('assets/test.png');
$imagedata1 = process_using_gd_or_something($imagedata1);

echo "<img src={$imagedata1} >"; // <-- IS THIS (OR EQUIVALENT) POSSIBLE?

// get and display image 2:
//etc...

我想避免将图像处理后从那里存储到磁盘上,或者使用外部脚本…


阅读 335

收藏
2020-05-26

共1个答案

一尘不染

您可以使用image 属性中的 数据URI 进行此操作src

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

这个例子直接来自维基百科页面上的数据URI:

<?php
function data_uri($file, $mime) 
{  
  $contents = file_get_contents($file);
  $base64   = base64_encode($contents); 
  return ('data:' . $mime . ';base64,' . $base64);
}
?>

<img src="<?php echo data_uri('elephant.png','image/png'); ?>" alt="An elephant" />
2020-05-26