PHP 图片转 base64

<?php
//$file:图片地址
//Filetype: JPEG,PNG,GIF
$file = "encode.jpg";
if($fp = fopen($file,"rb", 0))
{
    $gambar = fread($fp,filesize($file));
    fclose($fp);

     
    $base64 = chunk_split(base64_encode($gambar));
    // 输出
    $encode = '<img src="data:image/jpg/png/gif;base64,' . $base64 .'" >';
    echo $encode;
}    
?>
/*图片转换为 base64格式编码*/

$img = 'uploads/01.png';

$base64_img = base64EncodeImage($img);

echo '<img src="'.$base64_img.'" />';

  

function base64EncodeImage ($image_file) {

    $base64_image = '';

    $image_info = getimagesize($image_file);

    $image_data = fread(fopen($image_file, 'r'), filesize($image_file));

    $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));

    return $base64_image;

}
/*  base64格式编码转换为图片并保存对应文件夹 */

function base64_image_content($base64_image_content,$path){

    //匹配出图片的格式

    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){

        $type = $result[2];

        $new_file = $path."/".date('Ymd',time())."/";

        if(!file_exists($new_file)){

            //检查是否有该文件夹,如果没有就创建,并给予最高权限

            mkdir($new_file, 0700);

        }

        $new_file = $new_file.time().".{$type}";

        if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){

            return '/'.$new_file;

        }else{

            return false;

        }

    }else{

        return false;

    }

}

  

echo base64_image_content($base64_img,"uploads/");

简单写法:

// A few settings
$img_file = 'raju.jpg';

// Read image path, convert to base64 encoding
$imgData = base64_encode(file_get_contents($img_file));

// Format the image SRC:  data:{mime};base64,{data};
$src = 'data: '.mime_content_type($img_file).';base64,'.$imgData;

// Echo out a sample image
echo '<img src="'.$src.'">';