Maison  >  Article  >  développement back-end  >  Comment convertir des images en base64 en php ?

Comment convertir des images en base64 en php ?

青灯夜游
青灯夜游original
2020-11-05 10:52:493635parcourir

En PHP, vous pouvez utiliser les fonctions base64_encode() et chunk_split() pour encoder en base64 les fichiers image et les convertir au format base64. Le format de syntaxe est "chunk_split(base64_encode(fread(file, size)".

Comment convertir des images en base64 en php ?

Recommandé : "Tutoriel vidéo PHP"

PHP prend très bien en charge Base64, avec base64_encode et base64_decode intégrés Responsable de l'encodage Base64 et du décodage des images

Pour l'encodage, il suffit de lire le flux d'images puis d'utiliser base64_encode pour l'encoder

/**
 * 获取图片的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 &#39;<pre class="brush:php;toolbar:false">&#39; . print_r($img_info, true) . &#39;

'; $fp = fopen($app_img_file, "r"); // 图片是否可读权限 if ($fp) { $filesize = filesize($app_img_file); $content = fread($fp, $filesize); $file_content = chunk_split(base64_encode($content)); // base64编码 switch ($img_info[2]) { //判读图片类型 case 1: $img_type = "gif"; break; case 2: $img_type = "jpg"; break; case 3: $img_type = "png"; break; } $img_base64 = 'data:image/' . $img_type . ';base64,' . $file_content;//合成图片的base64编码 } fclose($fp); } return $img_base64; //返回图片的base64 } //调用使用的方法 $img_dir = dirname(__FILE__) . '/uploads/img/11213223.jpg'; $img_base64 = imgToBase64($img_dir); echo ''; //图片形式展示 echo '
'; echo $img_base64; //输出Base64编码

Le décodage est un peu plus gênant. après avoir encodé l'image dans une chaîne base64, les caractères data:image/png;base64 seront ajoutés à l'encodage, qui est à l'origine utilisé pour l'identification base64. Cependant, s'il est directement mis en PHP et décodé à l'aide de la fonction base64_decode, il. sera finalement enregistré. Le format du fichier image est endommagé et la solution consiste d'abord à supprimer cette chaîne de caractères :

$base64_string= explode(&#39;,&#39;, $base64_string); //截取data:image/png;base64, 这个逗号后的字符
$data= base64_decode($base64_string[1]);  //对截取后的字符使用base64_decode进行解码
file_put_contents($url, $data); //写入文件并保存

Pour plus de connaissances sur la programmation, veuillez visiter : Introduction à la programmation !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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