1. 程式人生 > >圖片基於base64轉碼技術

圖片基於base64轉碼技術

1、型別宣告+base64轉碼資料

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <img src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCADfAtQDAREAAhEBAxEB/8QAHQAAAgMBAQEBAQAAAAAAAAAABAUDBgcCCAEACf/EAEUQAAIBAgQEBAQEBAUCBQMFAQECAwQRAAUSIQYTMUEHIlFhFDJxgSNCkaEIFVKxM8HR4fAWJENicoLxNJKiCRclJmNz/8QAGwEAAgMBAQEAAAAAAAAAAAA..." alt="">
</body>
</html>

圖片的base64轉碼是圖片根據轉碼的資料段逐行顯示。從上到下,一段段資料顯示以行形式顯示的影象塊,印象筆記的離線enx檔案就是將檔案中的圖片,附件基於base64進行了轉碼。通過這項技術還可以用於前後端分離的圖片傳輸,不用傳伺服器圖片地址,直接傳送base64編碼後的資料就行了。同時伺服器上傳的圖片經過base64編碼後可以直接儲存在資料庫中。

base64_encode(file_get_contents('test.jpg'));

2.base64格式圖片和jpg格式的比較

對於jpg格式的圖片,每一個圖片相當於一次http請求,圖片多了的話,耗效能比較嚴重。
而將jpg轉化成base64格式的圖片,則極大地減少了請求數,因為base64是文字格式,可以直接放在body裡。一般對於小於10KB大小的圖片進行base64轉碼。