<?php
$src_img = "img/test.jpg"; //原图
$dst_w = 320;
$dst_h = 240; //目标
list($width, $height) = getimagesize($src_img); //getimagesize得到图片的长宽
$dst_scale = $dst_h/$dst_w ;
$src_scale = $height/$width ;
if($src_scale >= $height) { //过高
echo "too height";
$w = intval($width);
$h = intval($dst_scale * $w);
$x = 0;
$y = ($height - $h)/3;
}
else { //过宽
echo "too width";
$h = intval($height);
$w = intval($h/$dst_scale);
$x = ($width - $w)/2; //这个数字没有太多的意义感觉
$y = 0;
}
$source=imagecreatefromjpeg($src_img); //imagecreatefromjpeg从url或者文件创建一个图像标识符,可以理解为从给定的文件名获取到图像
$croped=imagecreatetruecolor($w, $h); //imagecreatetruecolor创建真彩色图像,包含的两个参数是宽和高
imagecopy($croped,$source,0,0,$x,$y,$width,$height); //从源文件拷贝一部分到目标文件
/*
* imagecopy函数说明:
* 将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
*/
$scale = $dst_w/$w;
$target = imagecreatetruecolor($dst_w, $dst_h);
$final_w = intval($w*$scale);
$final_h = intval($h*$scale);
imagecopyresampled($target,$croped,0,0,0,0,$final_w,$final_h,$w,$h); //php中缩放图片的函数.
//imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)
$timestamp = time();
imagejpeg($target, "$timestamp.jpg");
imagedestroy($target);
echo "<img src=\"$timestamp.jpg\"> ";
?>