php将本地图片或gd库生成的图片转成base64显示在页面上附源码下载
日期:2020-01-20
来源:程序思维浏览:2497次
PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码。
编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到。
<?php
/**
* 获取图片的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 = './php.gif';
$img_base64 = imgToBase64($img_dir);
echo '<img src="' . $img_base64 . '">'; //图片形式展示
echo '<hr>';
echo $img_base64; //输出Base64编码
//解码base64并保存图片
$base64_string= explode(',', $img_base64); //截取data:image/png;base64, 这个逗号后的字符
$data= base64_decode($base64_string[1]);//对截取后的字符使用base64_decode进行解码
file_put_contents("php_bak.gif", $data); //写入文件并保存
php图片转成base64图片源码下载
gd库转base64
<?php
function gd(){
//创建了一个临时文件
$imgPath = tempnam(sys_get_temp_dir(), 'k');
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagepng($im,$imgPath);
imagedestroy($im);
$data = file_get_contents($imgPath);
@unlink($imgPath);
$img_base64='data:image/png;base64,' . base64_encode($data);
return $img_base64;
}
$img=gd();
//print_r($img);
echo "<img width='100' height='100' src='".$img."' />";
?>
gd库生成图片转成base64图片源码下载
编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到。
<?php
/**
* 获取图片的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 = './php.gif';
$img_base64 = imgToBase64($img_dir);
echo '<img src="' . $img_base64 . '">'; //图片形式展示
echo '<hr>';
echo $img_base64; //输出Base64编码
//解码base64并保存图片
$base64_string= explode(',', $img_base64); //截取data:image/png;base64, 这个逗号后的字符
$data= base64_decode($base64_string[1]);//对截取后的字符使用base64_decode进行解码
file_put_contents("php_bak.gif", $data); //写入文件并保存
php图片转成base64图片源码下载
gd库转base64
<?php
function gd(){
//创建了一个临时文件
$imgPath = tempnam(sys_get_temp_dir(), 'k');
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagepng($im,$imgPath);
imagedestroy($im);
$data = file_get_contents($imgPath);
@unlink($imgPath);
$img_base64='data:image/png;base64,' . base64_encode($data);
return $img_base64;
}
$img=gd();
//print_r($img);
echo "<img width='100' height='100' src='".$img."' />";
?>
gd库生成图片转成base64图片源码下载
- 上一篇:扫描二维码跳转小程序指定页面
- 下一篇:uni-app配置代理解决跨域问题
精品好课