Maison >développement back-end >tutoriel php >利用base64对图片进行编码及解码

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

WBOY
WBOYoriginal
2016-07-30 13:31:591661parcourir

试图将图片通过json进行传输,这个时候就想到利用base64编码的方法来图片。主要步骤有

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

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

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

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

<?php $image_file = &#39;./uploads/14391214729290.jpg&#39;;

        //读取图片文件,并转换成base64编码格式
        $image_info = getimagesize($image_file);
        $base64_image_content = "data:{$image_info[&#39;mime&#39;]};base64," . chunk_split(base64_encode(file_get_contents($image_file)));
        //echo $base64_image_content;

        //将base64字符串解码并保存为原来图片格式
        if (preg_match(&#39;/^(data:\s*image\/(\w+);base64,)/&#39;, $base64_image_content, $result)){
            $type = $result[2];
            $new_file = "./newfile.{$type}";
            if (file_put_contents($new_file, base64_decode(str_replace($result[1], &#39;&#39;, $base64_image_content)))){
                echo &#39;新文件保存成功:&#39;, $new_file;
            }

        }
        //显示图片
        <img  src="<?php echo $base64_image_content;? alt="利用base64对图片进行编码及解码" >" />
 ?>
<br>其中,

preg_match()      <br>

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

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

file_put_contents ()    <br>

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

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

<br><br>

<br>

<br>

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了利用base64对图片进行编码及解码,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:PHP函数库(other)Article suivant:为什么选择Nginx