php图片上传、剪裁


/**
<!-- lang: php -->
 * 按照目标宽度将图片等比例缩放
<!-- lang: php -->
 * @param string $filename  图片名
<!-- lang: php -->
 * @param int $width 缩放后的图片宽度
<!-- lang: php -->
 */
<!-- lang: php -->
function thumb($filename,$width){
<!-- lang: php -->
    /*获取图片的高度和宽度*/
<!-- lang: php -->
    list($width_orig,$height_orig) = getimagesize($filename);
<!-- lang: php -->

<!-- lang: php -->
    /*设置缩放后的图片的高度*/
<!-- lang: php -->
    $height = $height_orig * ($width / $width_orig);
<!-- lang: php -->

<!-- lang: php -->
    /*将原图缩放到这个新建的图片资源中*/
<!-- lang: php -->
    $image_p = imagecreatetruecolor($width, $height);
<!-- lang: php -->

<!-- lang: php -->
    /*获取原图的图片资源*/
<!-- lang: php -->
    $image = imagecreatefromjpeg($filename);
<!-- lang: php -->

<!-- lang: php -->
    /*使用imagecopyresampled()函数进行缩放*/
<!-- lang: php -->
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
<!-- lang: php -->

<!-- lang: php -->
    /*将缩放后的图片$image_p保存,100(最佳质量,文件最大)*/
<!-- lang: php -->
    imagejpeg($image_p,$filename,100);
<!-- lang: php -->

<!-- lang: php -->
}
<!-- lang: php -->

<!-- lang: php -->
/**
<!-- lang: php -->
 * 创建与$filname一样的图片资源,然后将其重命名并进行缩放处理,
<!-- lang: php -->
 * 在该程序中新的图片名是将原图片名中含有_800替换为_160
<!-- lang: php -->
 * @param string $filename(带有图片路径)
<!-- lang: php -->
 */
<!-- lang: php -->
function createAndResizeImg($filename){
<!-- lang: php -->
    /*获取图片的宽度$width_orig和高度$height_orig*/
<!-- lang: php -->
    list($width_orig,$height_orig) = getimagesize($filename);
<!-- lang: php -->

<!-- lang: php -->
    /*源图像*/
<!-- lang: php -->
    $src_im = @imagecreatefromjpeg($filaneme);
<!-- lang: php -->

<!-- lang: php -->
    /*创建目标图像*/
<!-- lang: php -->
    $dst_im = imagecreatetruecolor($width_orig, $height_orig);
<!-- lang: php -->

<!-- lang: php -->
    /*拷贝源图像从左上角开始*/
<!-- lang: php -->
    imagecopy($dst_im, $src_im, 0, 0, 0, 0, $width_orig, $height_orig);
<!-- lang: php -->

<!-- lang: php -->
    /*新的图片名称*/
<!-- lang: php -->
    $newfilename = str_replace("_800", "_160", $filename);
<!-- lang: php -->

<!-- lang: php -->
    /*拷贝图片并重命名*/
<!-- lang: php -->
    imagejpeg($dst_im, $newfilename);
<!-- lang: php -->

<!-- lang: php -->
    /*销毁图片资源*/
<!-- lang: php -->
    imagedestroy($src_im);
<!-- lang: php -->
    imagedestroy($dst_im);
<!-- lang: php -->

<!-- lang: php -->
    /*按照宽为160对图片进行等比例缩放*/
<!-- lang: php -->
    thumb($newfilename,160);
<!-- lang: php -->
}

你可能感兴趣的:(php图片上传、剪裁)