php 图片流 转 base64
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 图片流 转 base64相关的知识,希望对你有一定的参考价值。
我只会用这种方法生成图片
//以上代码忽略
imagepng($code)
这样会直接在浏览器输出图片,后面加路径则会在指定位置输出图片
那么问题来了,我要把图片转换为base64编码,就必须先要imagepng($code,路径)
然后再从路径读图片转为base64编码,有没有办法直接用 $code这个参数直接转换为base64编码的图片?据查这个$code参数就是图片流,我就是想不通过写出文件的步骤直接转为base64编码,求指教。
用途:网站内一些数字为了防采集,将用图片显示,但是我只能做成带get参数的图片生成器,那就失去了防采集功能了
给你试试吧:
<?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的主要内容,如果未能解决你的问题,请参考以下文章