《如何用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.snjht.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.snjht.com/jiaocheng/54.html summernote在線編輯器提交的內容PHP處理其中圖片函數中的處理。
效果如圖:
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/71.html