接受图片流并且生成图片

 第一种

  $res=  file_put_contents(‘路径加图片名称’, base64_decode(‘图片流数据’));

 if($res===false) throw new \Exception('生成图片失败');

生成成功会返回数字,失败为空


第二种

$stream file_get_contents('php://input');
 
$gd = imagecreatefromstring($stream);
 
imagepng($gd'/xxx.png');



  $xmlstr = file_get_contents('php://input')?file_get_contents('php://input') : gzuncompress($GLOBALS['HTTP_RAW_POST_DATA']);//得到post过来的二进制原始数据  
  $filename=time().'.png';  
  if(file_put_contents($filename,$xmlstr)){  
 echo 'success';  
  }else{  
 echo 'failed';  
  }  


第三种
//  $base_img是获取到前端传递的src里面的值,也就是我们的数据流文件
$base_img = str_replace('data:image/jpg;base64,', '', $base_img);
//  设置文件路径和文件前缀名称
$path = "./";
$prefix='nx_';
$output_file = $prefix.time().rand(100,999).'.jpg';
$path = $path.$output_file;
//  创建将数据流文件写入我们创建的文件内容中
$ifp = fopen( $path, "wb" );
fwrite( $ifp, base64_decode( $base_img) );
fclose( $ifp );



header('Content-type:text/html;charset=utf-8');
//读取图片文件,转换成base64编码格式
$image_file= './4296762_165319032930_2.jpg';
$image_info= getimagesize($image_file);
$base64_image_content= "data:{$image_info['mime']};base64,". chunk_split(base64_encode(file_get_contents($image_file)));
  
//保存base64字符串为图片
//匹配出图片的格式
if(preg_match('/^(data:\s*image\/(\w+);base64,)/',$base64_image_content,$result)){
  $type= $result[2];
  $new_file= "./test.{$type}";
  if(file_put_contents($new_file,base64_decode(str_replace($result[1],'',$base64_image_content)))){
    echo'新文件保存成功:',$new_file;
  }
  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值