/**
*裁剪头像
*pagram string $OldImagePath 原图片全路径 如C:/wamp/www/1.jpg
*pagram string $NewImagePath 裁切后生成的图片要保存的路径 如C:/wamp/www/2.jpg
*pagram float $WriteX 前台裁切图块与画布的X偏移量
*pagram float $WriteY 前台裁切图块与画布的Y偏移量
*pagram float $CutWidth 前台裁切图块的宽
*pagram float $CutHeight 前台裁切图块的高
*pagram float $CanvasWidth 前台画布(即前台用来被裁切的图片)的宽
*pagram float $CanvasWidth 前台画布(即前台用来被裁切的图片)的高
*pagram float $NewWidth 裁切后生成的图片宽度
*pagram float $NewHeight 裁切后生成的图片高度
**/
function CreatePhotoImage($OldImagePath,$NewImagePath,$WriteX, $WriteY,$CutWidth,$CutHeight,$CanvasWidth=300,$CanvasHeight=300, $NewWidth=220, $NewHeight=140)
{
// 获得图形信息getimagesize参数说明:0(宽),1(高),2(1gif/2jpg/3png),3(width="638" height="340")
$OldImageInfo = getimagesize($OldImagePath);
if ( $OldImageInfo[2] == 1 ) $OldImg = @imagecreatefromgif($OldImagePath);
elseif ( $OldImageInfo[2] == 2 ) $OldImg = @imagecreatefromjpeg($OldImagePath);
else $OldImg = @imagecreatefrompng($OldImagePath);
//将裁切图块与画布的X、Y偏移量 转化成相对实际图片的X、Y偏移量;将裁切图块在画布上的宽高 转化成相对实际图片的宽高;
$WriteX=imagesx($OldImg)/$CanvasWidth*$WriteX;
$WriteY=imagesy($OldImg)/$CanvasHeight*$WriteY;
$CutWidth=imagesx($OldImg)/$CanvasWidth*$CutWidth;
$CutHeight=imagesy($OldImg)/$CanvasHeight*$CutHeight;
$NewImg = imagecreatetruecolor( $NewWidth, $NewHeight );
//创建透明图层
$white = ImageColorAllocate( $NewImg, 255, 255, 255 ); //白色
imagefill( $NewImg, 0, 0, $white);
imageColorTransparent( $NewImg, $white);
//重采样拷贝部分图像并调整大小,具体可以看下PHP函数说明
@imagecopyresampled( $NewImg, $OldImg, 0, 0, $WriteX, $WriteY, $NewWidth,$NewHeight,$CutWidth,$CutHeight);
//保存图片
@imagegif($NewImg, $NewImagePath);
//释放图片资源
@imagedestroy($OldImg);
@imagedestroy($NewImg);
}
define("PATH_ROOT",dirname(__FILE__));
CreatePhotoImage(PATH_ROOT."/1.jpg",PATH_ROOT."/2.jpg",50,50,100,100);
?>
CSS和JS前台的图片裁切代码,因为网站没办法上传附件,需要的可以发我邮箱,邮箱:hetiansu5@163.com