PHP base64图片处理 方法收集

base64图片剪裁
protected function catImage($base64data,$x=800,$y=1200,$width=2900,$height=3300){
	$old_image = base64_decode($base64data);
	$old_image=imagecreatefromstring($old_image);
	//裁剪开区域左上角的点的坐标
    $x = $x;
    $y = $y;
    //裁剪区域的宽和高
    $width  = $width-$x;
    $height = $height-$y;
    //最终保存成图片的宽和高,和源要等比例,否则会变形
    $final_width = $width;
    $final_height = $height;
    //将裁剪区域复制到新图片上,并根据源和目标的宽高进行缩放或者拉升
    $new_image = imagecreatetruecolor($final_width, $final_height);
    imagecopyresampled($new_image, $old_image, 0, 0, $x, $y, $final_width, $final_height, $width, $height);
    ob_start(); // Let's start output buffering.
    imagejpeg($new_image); //This will normally output the image, but because of ob_start(), it won't.
    $contents = ob_get_contents(); //Instead, output above is saved to $contents
    ob_end_clean(); //End the output buffer.
    //输出base64
    return $contents;
}
base64去掉头部、解码、存储&创建图片

去除头部:substr(strstr($base64,','),1);
解码:base64_decode($base64);
存储&创建图片:file_put_contents($file_path,$data);或 imagecreatefromstring($data)

base64 生成的图像添加背景图像

图片处理参数解释:http://www.5idev.com/p-php_gd.shtml

$img = imagecreatefromstring(base64_decode(str_replace('data:image/png;base64,', '', $image)));
$filename = 'image.jpg';
$width = imagesx($img);
$height = imagesy($img);
$output = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($output,  255, 255, 255);//白色背景
imagefilledrectangle($output, 0, 0, $width, $height, $white);
imagecopy($output, $img, 0, 0, 0, 0, $width, $height);
imagejpeg($output, './'.$filename);
echo $filename;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值