php 远程图片转base64,用PHP把服务器上的图片转成base64输出到浏览器

为什么要把图片转为base64编码?

base64是当前网络上最为常见的传输8 Bit字节代码的编码方式其中之一。

base64除了可以用来加密,它还可以把某些二进制数转成普通字符用于网络传输。由于这些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下。虽然图片可能直接传输,但是我们也可以将它变成字符串直接放在源码里,而不需要浏览器在读取到源码后再从服务器上下载。还有比如截图插件,也会经常转成base64,避免需要先上传到服务器再截图,而是本地就可以先完成,确定截图区域后生成base64代码预览,提交后再保存。就避免了服务器图片垃圾。

早期做网站,如果想把图片保存到数据库,需要转成二进制blob存储。现在也可以转成base64,而且效率更高。

-我通过格式转换工具来查看到源码

91bcf4c3d155

图片.png

-我的base64是下图内容

91bcf4c3d155

图片.png

所以,我们如果想要在php中输出base64图片,直接这样即可echo '![](.$wxPaySmUrl.)';

/** 把图片转成base64 :如 $img=imgtobase64('images/logo2.png');

* http://www.vephp.com 维易PHP

* @param string $img 图片物理地址

* @param bool $imgHtmlCode 是否转成HTML代码,即:![](...) 默认转化

* @return string

*/

function imgtobase64($img='', $imgHtmlCode=true)

{

$imageInfo = getimagesize($img);

$base64 = "" . chunk_split(base64_encode(file_get_contents($img)));

# file_get_contents可替换为 fread(fopen($img, 'r'), filesize($img));

return $imgHtmlCode? '![]('.$base64.')' : $base64;

}

另外,如果要反向操作也很简单,就是把取到的base64,用base64_decode()函数解码,再用file_put_contents()函数保存成图片即可。可以参考http://www.vephp.com/jiaocheng/54.html summernote在线编辑器提交的内容PHP处理其中图片函数中的处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值