• PHP将图片转base64格式函数


      base64的好处是什么?今天在跟小伙伴讨论这个问题,要是全站用Php把图片转为base64行不行?

      1. 提升性能: 网页上的每一个图片,都是需要消耗一个 http 请求下载而来的, 图片的下载始终都要向服务器发出请求,要是图片的下载不用向服务器发出请求,base64可以随着 HTML 的下载同时下载到本地.减少https请求。

    2. 加密: 让用户一眼看不出图片内容 , 只能看到编码。
    3. 方便引用: 在多个文件同时使用某些图片时, 可以把图片转为base64格式的文件, 把样式放在全局中, 比如common.css, 以后在用的时候就可以直接加类名, 二不需要多层找文件路径, 会提升效率

      

      

    /**
    	* 图片转base64
    	* @param ImageFile String 图片路径
    	* @return 转为base64的图片
    	*/
        function Base64EncodeImage($ImageFile) {
            if(file_exists($ImageFile) || is_file($ImageFile)){
                $base64_image = '';
                $image_info = getimagesize($ImageFile);
                $image_data = fread(fopen($ImageFile, 'r'), filesize($ImageFile));
                $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
                return $base64_image;
            }
            else{
                return false;
            }
        }
    

      base64图片实际应用

      

    <img src="data:image/jpeg;base64,/9j/4AAQS……"/>
    

      

        不过base64也有缺点:

        1)base64格式的文本内容较多,存储在数据库中增大了数据库服务器的压力;

       (2)网页加载图片虽然不用访问服务器了,但因为base64格式的内容太多,所以加载网页的速度会降低,可能会影响用户的体验。 

      (3)base64无法缓存,要缓存只能缓存包含base64的文件,比如js或者css,这比直接缓存图片要差很多,而且一般HTML改动比较频繁,所以等同于得不到缓存效益。

      总结:因为base64的使用缺点,所以一般图片小于10kb的时候,我们才会选择使用base64图片,比如一些表情图片,太大的图片转换成base64得不偿失。当然,极端情况极端考虑。

  • 相关阅读:
    STM32学习(I2C SPI)
    STM32学习2(GPIO EXTI SYSTICK 通信基本概念)
    STM32学习1(RCC时钟树)
    C语言学习日记8
    C语言学习日记7
    C语言学习日记6
    C语言学习日记5
    C语言学习日记4
    java-课程设计-彩票购买抽奖程序
    java-课程设计-彩票购买抽奖程序(个人部分)
  • 原文地址:https://www.cnblogs.com/68xi/p/11612500.html
Copyright © 2020-2023  润新知