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得不償失。當然,極端情況極端考慮。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM