php 图片流 转 base64

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 图片流 转 base64相关的知识,希望对你有一定的参考价值。

我只会用这种方法生成图片
//以上代码忽略
imagepng($code)
这样会直接在浏览器输出图片,后面加路径则会在指定位置输出图片

那么问题来了,我要把图片转换为base64编码,就必须先要imagepng($code,路径)
然后再从路径读图片转为base64编码,有没有办法直接用 $code这个参数直接转换为base64编码的图片?据查这个$code参数就是图片流,我就是想不通过写出文件的步骤直接转为base64编码,求指教。

用途:网站内一些数字为了防采集,将用图片显示,但是我只能做成带get参数的图片生成器,那就失去了防采集功能了

参考技术A

给你试试吧:

<?php
$im =  imagecreatetruecolor(100, 100);

ob_start();
imagepng($im);
$fileContent = ob_get_contents();
ob_end_clean();

echo base64_encode($fileContent);

追问

这个是不行的,imagepng($im);已经输出到浏览器了,后面再编码就意义不大了,等于输出了两次,我想直接用$im这个参数编码,我已经解决了,不过还是感谢回复,接分。

本回答被提问者和网友采纳

c# 图片转二进制流

RT,比如说如何把picturebox1的图片转成流形式

参考技术A 你可以把它序列化,如下

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

private void Form1_Load(object sender, EventArgs e)

BinaryFormatter binaryFormatter = new BinaryFormatter();
Bitmap bit = pictureBox1.Image as Bitmap;
MemoryStream memoryStream = new MemoryStream();
binaryFormatter.Serialize(memoryStream, bit);//序列化
byte[] byteArr = memoryStream.ToArray();//这就是你要的

Bitmap bit = binaryFormatter.Deserialize(memoryStream);//反序列化
memoryStream.Dispose();
参考技术B System.IO.MemoryStream s = new System.IO.MemoryStream();

picturebox1.Image.Save(s, System.Drawing.Imaging.ImageFormat.Jpeg);

byte[] Data=s.ToArray();本回答被提问者采纳

以上是关于php 图片流 转 base64的主要内容,如果未能解决你的问题,请参考以下文章

php把网络图片转Base64编码。

php 图片转base4的格式

PHP将图片转base64格式函数

asp 动态加载节日弹窗,base64转文件流显示图片

php 将图片转成base64

PHP远程下载图片,微信头像存到本地,本地图片转base64