php图片文件、二进制流、base64格式相互转化

2020-01-10 19:42:00

1,php 图片文件、二进制流、base64格式相互转化

$image = 'E:/www/logo.png';  //图片文件地址
 
$type = getimagesize($image)['mime'];    //获取图片类型
$imgData = file_get_contents($image);    //获取图片二进制流
 
//输出二进制图片
ob_clean();    //清除缓冲区,防止出现“图像因其本身有错无法显示'的问题
header("Content-Type:{$type}");
echo $imgData; //输出图片
 
//或者把此文件地址作为img标签src地址输出
//<img src="imgdata.php">

2,二进制流转化为图片文件

$file = "E:/www/logo2.png";
file_put_contents( $file, $imgData);


3,二进制流转化为base64格式图片

$type = getimagesizefromstring($imageData)['mime']; //获取二进制流图片格式
$base64String = 'data:' . $type . ';base64,' . chunk_split(base64_encode($imageData));
 
//格式如:
'data:image/png;base64,iVBORw0...此处省略...RZV0P=';
 
 
//输出图片
echo "<img src='{$base64String }'>";

4,base64格式图片转化为二进制流

//截取data:image/png;base64, 这个逗号后的字符
$array = explode(',', $base64String); 
 
//对截取后的字符使用base64_decode进行解码,此为二进制流图片
$imgData = base64_decode(end($array));  


  • 2017-11-28 14:55:13

    使用 Vagrant 打造跨平台开发环境

    Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史。

  • 2017-11-28 14:57:19

    vagrant up 失败解决办法

    直接使用VirtualBox开启一个vm也会失败,基本上可以确定是VirtualBox版本的问题 有遇到过安装了VirtualBox-5.0.22-108108-Win.exe的版本在win7下用不了,卸载重装VirtualBox-4.3.12-93733-Win.exe之后可用。

  • 2017-12-05 22:30:02

    php7.0升级php7.2

    看电脑上的教程要备份7.0配置文件以及扩展啥的,我感觉不如卸载干净重新安装

  • 2017-12-06 09:35:10

    分页优化的四种方式

    在大数据量的情况下,原本很简单的分页如果没有处理好,你会发现分页的请求会消耗你大量的数据库时间。如果你遇到了这个问题,文章给了你几个很好的解决的方案。当然,初学者若能看完这篇文章,那么它会指导你写出更具有扩展性的分页代码。