<?php
/*
*功能:图片裁剪
*说明:将原图片某区域裁剪出来
*
* 原理:
* 1.使用php函数获取图需要裁剪图片资源;
* 2.创建空白图片,宽高自定义;
* 3.将原图中的裁剪区域像素一次填充到空白图像中去;
* 4.输出新图像,清空图像资源;
*
* 涉及图像处理函数:
* imagecreatefromstring()
* imagecreatetruecolor()
* imagecopyresampled()
* header()
* imagejpeg()
* imagedestroy()
*/
$src_path="demo.jpg";//需要裁剪图像的路径
$save_path="cut_".time().".jpg";//裁剪后新图象的路径
//裁剪开区域左上角顶点的坐标
$x=100;
$y=100;
//裁剪区域的宽高
$width=200;
$height=200;
//最终保存成图片的宽和高,和原图像要等比例,否则会变形
$final_width=$width;
$final_height = round($final_width * $height / $width);
//创建源图像的实例
$src_img=imagecreatefromstring(file_get_contents($src_path));
//创建空白图像的实例(使用真彩色)
$new_img=imagecreatetruecolor($width,$height);
//将裁剪区域复制到新图片上
imagecopyresampled($new_img, $src_img, 0, 0, $x, $y, $final_width, $final_height, $width, $height);
//输出图片
header('Content-Type: image/jpeg');//设置输出内容类型格式
imagejpeg($new_img,$save_path);//将新图片保存为图像文件
//清空图像资源
imagedestroy($src_img);
imagedestroy($new_img);