例子,php背景图片填充代码。
在生成图片时需要按大小生成,判断图片大小是否与规定的大小相同,如果不同要对背景进行填充。
图片操作类:
<?php
/**
* 添加背景
* @param string $src 图片路径
* @param int $w 背景图像宽度
* @param int $h 背景图像高度
* @return 返回加上背景的图片
* **/
public function addBg($src,$w,$h)
{
$bg = imagecreatetruecolor($w,$h);
$white = imagecolorallocate($bg,255,255,255);
imagefill($bg,0,0,$white);//填充背景
//获取目标图片信息
$info=getimagesize($src);
$width=$info[0];//目标图片宽度
$height=$info[1];//目标图片高度
switch ($info[2]){
case 1:
$img = imagecreatefromgif($src);
break;
case 2:
$img = imagecreatefromjpeg($src);
break;
case 3:
$img = imagecreatefrompng($src);
break;
default:
exit('不支持的图像格式');
break;
}
if($height < $h)
{
$x=0;
$y=($h-$height)/2;//垂直居中
}
if($width < $w)
{
$x=($w-$width)/2;//水平居中
$y=0;
}
if($height < $h && $width < $w){
$x = ($w-$width)/2;
$y = ($h-$height)/2;
}
imagecopymerge($bg,$img,$x,$y,0,0,$width,$height,100);
imagejpeg($bg,$src,100);
imagedestroy($bg);
imagedestroy($img);
return $src;
}