《如何用PHP把服务器上的图片转成base64输出到浏览器》要点:
本文介绍了如何用PHP把服务器上的图片转成base64输出到浏览器,希望对您有用。如果有疑问,可以联系我们。
相关主题:PHP开发
为什么要把图片转为base64编码?
base64是当前网络上最为常见的传输8 Bit字节代码的编码方式其中之一。
base64除了可以用来加密,它还可以把某些二进制数转成普通字符用于网络传输。由于这些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下。虽然图片可能直接传输,但是我们也可以将它变成字符串直接放在源码里,而不需要浏览器在读取到源码后再从服务器上下载。还有比如截图插件,也会经常转成base64,避免需要先上传到服务器再截图,而是本地就可以先完成,确定截图区域后生成base64代码预览,提交后再保存。就避免了服务器图片垃圾。
早期做网站,如果想把图片保存到数据库,需要转成二进制blob存储。现在也可以转成base64,而且效率更高。
那么PHP如何把服务器上的base64,以适应需求?
用这个函数就可以:
它的第二个参数默认是生成img代码,可以只生成base64代码。具体看说明。
/** 把图片转成base64 :如 $img=imgtobase64('images/logo2.png'); * http://www.vephp.com 维易PHP * @param string $img 图片物理地址 * @param bool $imgHtmlCode 是否转成HTML代码,即:<img src="..."> 默认转化 * @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? '<img src="'.$base64.'" border="0" />' : $base64; }
另外,如果要反向操作也很简单,就是把取到的base64,用base64_decode()函数解码,再用file_put_contents()函数保存成图片即可。可以参考http://www.vephp.com/jiaocheng/54.html summernote在线编辑器提交的内容PHP处理其中图片函数中的处理。
效果如图:
转载请注明本页网址:
http://www.vephp.com/jiaocheng/71.html