您当前的位置:首页 > 分类 > 技术资讯 > PHP > 正文

利用base64对图片进行编码及解码

发布时间:2016-01-12 15:04:25      来源:51推一把
【摘要】试图将图片通过json进行传输,这个时候就想到利用base64编码的方法来图片。主要步骤有1、对图片文件进行编码,转换为base64编码的格式,及一长串字符;2、可将字符通过json进行传送;3、目的方接收json数组,取出编码字符串,并进行解码,显示图片该方法难点主要还是在
试图将图片通过json进行传输,这个时候就想到利用base64编码的方法来图片。主要步骤有

1、对图片文件进行编码,转换为base64编码的格式,及一长串字符;

2、可将字符通过json进行传送;

3、目的方接收json数组,取出编码字符串,并进行解码,显示图片

该方法难点主要还是在于对图片的编解码处理,以下是用PHP实现的编解码处理代码

      
$image_file = ./uploads/14391214729290.jpg; //读取图片文件,并转换成base64编码格式
$image_info = getimagesize($image_file);
$base64_image_content = "data:{$image_info[mime]};base64," . chunk_split(base64_encode(file_get_contents($image_file))); //echo $base64_image_content; 
//将base64字符串解码并保存为原来图片格式 
if (preg_match(/^(data:/s*image//(/w+);base64,)/, $base64_image_content, $result)){            
    $type = $result[2];            
    $new_file = "./newfile.{$type}";            
    if (file_put_contents($new_file, base64_decode(str_replace($result[1], , $base64_image_content)))){                
        echo 新文件保存成功:, $new_file;            
    }        
}        
//显示图片        
<img src="<?php echo $base64_image_content;?>" /> 

其中,
preg_match() 

作用:执行一个正则表达式匹配

返回值:返回pattern 的匹配次数。 它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后 将会停止搜索。如果发生错误preg_match()返回FALSE。

file_put_contents ()   

作用:将一个字符串写入文件

返回值:该函数成功将返回写入到文件内数据的字节数,失败时返回 FALSE。