问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP 如何把图片转成 BASE64 编码

发布网友 发布时间:2022-04-28 03:55

我来回答

3个回答

懂视网 时间:2022-04-28 08:17

php将图片转为base64的方法:首先读取图片流;然后使用“base64_encode”函数进行进行编码即可将图片转为base64。

推荐:《PHP视频教程》

PHP保存Base64图片base64_decode的问题

PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码。

编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到。

/**
 * 获取图片的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 '<pre>' . print_r($img_info, true) . '</pre><br>';
 $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 '<img src="' . $img_base64 . '">'; //图片形式展示
echo '<hr>';
echo $img_base64;  //输出Base64编码

而解码就略微麻烦一点,究其原因在于把图片编码成base64字符串后,编码内会加入这些字符 data:image/png;base64,本来是用于base64进行识别的。但是如果直接放到php里用base64_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉这一串字符:

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

热心网友 时间:2022-04-28 05:25

请试一试下面的代码

<?php
$img = '图片地址.jpg';
$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;
}
?>

试一试!

追问如果不直接在这里 echo 要怎么调用编码后的信息呢

热心网友 时间:2022-04-28 06:43

不知道啊:-C
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中考,安徽省定远一中达标分数线,求真实 我女朋友要过生日了,她让我送她酸奶,另外让我每天为她叠一个飞机,等... dye one's hair blue和 color on'e hair blue有什么区别? 1=1,2+3+4=9,3+4+5+6+7=25,4+5+6+7+8+9+10=49…照此规律,第n个等式为... 观察下列等式, 1=1 2+3+4=9 3+4+5+6+7=25 4+5+6+7+8+9+10=49 按照此... 1=1 2+3+4=9 3+4+5+6+7=25 4+5+6+7+8+9+10=49 照此规律, 观察下列等式1=12+3+4=93+4+5+6+7=254+5+6+7+8+9+10=49照此规律,第五... ...3+4=93+4+5+6+7=254+5+6+7+8+9+10=49……照此规律,第 个等式为... ...关于EXCEL中输入3-4就会自动生成年月日,怎么不让它自动生成啊_百度... 我的excel自动生成日期 我输入数字就自动成为日期 如何取消呢_百度知 ... php httpclient 超时怎么办 php怎么获取服务器脚本超时时间 php的fsockopen能设置超时时间吗 php中mysqli连接超时时间如何设置 如何修改IIS中的ASP脚本和PHP脚本超时时间 php soap 如何设置超时? php替换字符串中多个指定的字符为固定形式 php 全文查找字符串和替换成另一个字符串 浅析PHP中的字符串编码转换(自动识别原编码) PHP UNICODE 编码转换 php gb2312转换UTF-8编码 linux php开启失败 linux下PHP环境中Fatal error: Call to undefined function mysql_connect() 出错 linux 32位系统 编译php报错 linux 下的php代码出路径错误 linux下安装php报错configure: error: Cannot find MySQL header files under &#47;usr&#47;include&#47;mysql. 我在linux下安装php5.3.5时编译时出错, 怎么解决? 求助,Linux系统安装php,报错! php如何截取逗号之前的字符 php中关于数字中带有逗号的问题,如10,000,000,000.00如何能把逗号去掉变成10000000000.00 php 图片流 转 base64 php 如何base64编码的图片 如何将本地图片转成base64 php 图片用base64转码完的文本比以前还大 是为什么? 如何将图片转换为base64数据流 image/png;base64 用php怎么解析 php amr怎么转换成base64 码 用php在IE6中怎样显示编码为base64的图片? php 怎么将二进制流转换为base64编码 请问:php如何判断用户是使用pc电脑浏览网页 还是移动设备来浏览网页呢? PHP判断用户在移动端访问还是桌面端访问的代码 PHP如何判断手机访问还是电脑访问,我要一个判断获得两个值,如果手机访问,那么是$visit=sh 服务器如何识别你是用电脑还是手机上的他们的网站? php判断客户端是pc还是手机 php 判断是手机版还是电脑端 php怎么判断是不是苹果手机浏览器 403 Forbidden是什么意思?怎么解决? 打开游戏显示&quot;403Forbidden&quot;是啥意思? 403 Forbidden是什么意思,怎么解决这个问题? 403 Forbidden 是什么意思?怎么解决?