在PHP中,可用base64_encode()和chunk_split()函數來對圖片檔案進行base64編碼,將其轉換為base64格式,語法格式「chunk_split(base64_encode(fread(檔案, 大小)」。
推薦:《PHP影片教學》
PHP對Base64的支援非常好,有內建的base64_encode與base64_decode負責圖片的Base64編碼與解碼。
編碼上,只要將圖片流讀取到,而後使用base64_encode進行編碼即可得到。
/** * 获取图片的Base64编码(不支持url) * @date 2017-02-20 19:41:22 * * @param $img_file 传入本地图片地址 * * @return string */ function imgToBase64($img_file) { $img_base64 = ''; if (file_exists($img_file)) { $app_img_file = $img_file; // 图片路径 $img_info = getimagesize($app_img_file); // 取得图片的大小,类型等 //echo '<pre class="brush:php;toolbar:false">' . print_r($img_info, true) . '
而解碼就略微麻煩一點,究原因在於把圖片編碼成base64字串後,編碼內會加入這些字元data:image/png;base64,本來是用於base64進行辨識的。但是如果直接放到php裡用base64_decode函數解碼會導致最終保存的圖片檔案格式損壞,而解決方法就是先去掉這一串字元:
$base64_string= explode(',', $base64_string); //截取data:image/png;base64, 这个逗号后的字符 $data= base64_decode($base64_string[1]); //对截取后的字符使用base64_decode进行解码 file_put_contents($url, $data); //写入文件并保存
更多程式相關知識,請造訪:程式設計入門!!
以上是php怎麼將圖片轉換為base64?的詳細內容。更多資訊請關注PHP中文網其他相關文章!