kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

PHP image转换为base64

https://blog.csdn.net/qq_18979049/article/details/78610502

Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到它了,一张1X36的白灰png图片。

在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。

目前,Data URI scheme支持的类型有:

1
2
3
4
5
6
7
8
9
10
11
12
data:,文本数据
data:text/plain,文本数据
data:text/html,HTML代码
data:text/html;base64,base64编码的HTML代码
data:text/css,CSS代码
data:text/css;base64,base64编码的CSS代码
data:text/javascript,Javascript代码
data:text/javascript;base64,base64编码的Javascript代码
data:image/gif;base64,base64编码的gif图片数据
data:image/png;base64,base64编码的png图片数据
data:image/jpeg;base64,base64编码的jpeg图片数据
data:image/x-icon;base64,base64编码的icon图片数据

https://www.wubin.work/blog/articles/357

image对象转换base64

在使用php合成图片的时候,遇到了这么一个问题。

1
2
3
4
$img = imagecreatetruecolor($graphWidth,$graphHeight);
.....
header("Content-type: image/png");
imagepng($img);

最终我要求的是将生成的图片对象,输出为Base64然后传送给前端,让前端接收。

解决:

之所以不起作用,是因为其中的图像$img是资源,而不是实际的PNG图像。当您调用时imagepng(),它将输出图像。我要做的是创建一个输出缓冲区,并对其进行base-64编码。

1
2
3
4
5
ob_start();
imagepng($img);
$buffer = ob_get_clean();
ob_end_clean();
echo base64_encode($buffer);

最后,要忘记更改Content-Type标题,因为它不再是image/png。

最终转换为base64可以访问的格式是:

1
2
3
4
5
6
7
8
9
// 创建缓冲区
ob_start();
imagepng($img);
$buffer = ob_get_clean();
ob_end_clean();
$base64 = base64_encode($buffer);
$imageData = 'data:'. "image/png" . ';base64,' . $base64;

echo $imageData;

注意,一个有效的base64格式为:

1
data:image/png;base64, ...........

可以使用这个工具查看:http://tool.wubin.com/img2base64

图片转换为base64

php转换本地图片为base64

1
2
3
4
5
6
7
8
9
10
$filename = 'xxxx'; //本地图片在服务器上的路径
$imageDetails = getimagesize($filename);
if ($fp = fopen($filename,"rb", 0)) {
	$picture = fread($fp,filesize($filename));
	fclose($fp);
	$base64 = chunk_split(base64_encode($picture));
	$imageData = 'data:'.$imageDetails['mime'].';base64,' . $base64;
	//输出base64图片代码...
	echo $imageData;
}

php将远程图片转为base64的方法

1
2
3
4
5
6
$img_url = ''; //远程图片地址
$imageInfo = getimagesize($img_url);
$content = @file_get_contents($img_url); 
$base64Data = 'data:'.$imageInfo['mime'].';base64,'.base64_encode($content);
//输出base64图片数据流
echo $base64Data;