Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie Bilder in PHP in das Base64-Kodierungsformat

So konvertieren Sie Bilder in PHP in das Base64-Kodierungsformat

藏色散人
藏色散人Original
2020-09-07 09:37:512873Durchsuche

So konvertieren Sie Bilder in das Base64-Codierungsformat in PHP: Lesen Sie zuerst den Bildstream und verwenden Sie dann die Funktion [base64_encode], um das Codierungsformat zu konvertieren.

So konvertieren Sie Bilder in PHP in das Base64-Kodierungsformat

Empfohlen: „php-Video-Tutorial

Problem mit base64_decode von PHP beim Speichern von Base64-Bildern

PHP unterstützt Base64 sehr gut, mit integriertem base64_encode und base64_decode, die für die Base64-Kodierung und -Dekodierung von Bildern verantwortlich sind.

In Bezug auf die Codierung lesen Sie einfach den Bildstream und verwenden Sie dann base64_encode, um ihn zu codieren.

/**
 * 获取图片的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编码

Die Dekodierung ist etwas mühsamer. Der Grund dafür ist, dass nach der Kodierung des Bildes in eine Base64-Zeichenfolge diese Zeichen data:image/png;base64 zur Kodierung hinzugefügt werden, die ursprünglich für die Base64-Erkennung verwendet wurde. Wenn Sie es jedoch direkt in PHP einfügen und die Funktion base64_decode zum Dekodieren verwenden, wird das Format der endgültig gespeicherten Bilddatei beschädigt. Die Lösung besteht darin, zuerst diese Zeichenfolge zu entfernen:

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

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Bilder in PHP in das Base64-Kodierungsformat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn