图片格式的互相转换

2018-06-22 05:18:56来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

第一种:base64转换成图片路径

/**
* update_base64_url
* $base64 图片 base64
* $new_file 图片存储路径
* $new_file_name 图片存名
* return 图片名
*/
private function update_base64_url($base64,$new_file,$new_file_name=''){
//匹配出图片的格式
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64, $result)){
$type = $result[2];
// $new_file = "upload/weixin/";
if(!file_exists($new_file)){

//检查是否有该文件夹,如果没有就创建,并给予最高权限
mkdir(iconv("UTF-8", "GBK", $new_file), 0777,true);
}
//exit();
$new_file_name = !empty($new_file_name)? $new_file_name : time().rand(111111,999999);

$new_file_name = $new_file_name.".{$type}";
$new_file = $new_file.$new_file_name;
// var_dump($new_file);
// exit();

if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64)),FILE_APPEND)){
return $new_file_name;
}
return $new_file_name;
}
}

调用时:

$as = [];
foreach($pic as $v){
$imName['path'] = $this->update_base64_url($v,'upload/weixin/');
$imName['id'] = 1;
$as[] =$imName;
}


第二种:图片路径转换成base64
/**
* @param $image_file
* @return string
* 把图片样式转换成base64格式
*/

public function base64EncodeImage ($image_file) {
$base64_image = '';
$image_info = getimagesize('upload/weixin/'.$image_file);
$image_data = fread(fopen('upload/weixin/'.$image_file, 'r'), filesize('upload/weixin/'.$image_file));
$base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
return $base64_image;
}
调用时:

foreach($arrInfo['pic'] as $arrKey=>$arrValue){
$img = $arrInfo['pic'][$arrKey]['path'];
$base64_img = $this->base64EncodeImage($img);
$arrInfo['pictures'][] = $base64_img;
}

			   
			   

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:PHP电商订单自动确认收货redis队列

下一篇:TP框架中如何看到错误的SQL语句