读者

PHP中压缩图片

2019-10-24  本文已影响0人  参观西湖
function imgzip($ml,$wjm,$newwid,$newhei){
    //目录 文件名 新宽 新高
    $imgInfo = getimagesize($ml.$wjm);
    $wid=$imgInfo[0];//宽
    $hei=$imgInfo[1];//高
    if($wid<$newwid && $hei<$newhei){
        return $ml.$wjm;
    }

    //打开图片
    $imgType = image_type_to_extension(
        $imgInfo[2], false);
    $fun = "imagecreatefrom{$imgType}";
    $image = $fun($ml.$wjm);

    $bl=$newwid/$newhei;
    //判断长宽比,等比缩放
    if($wid/$hei>$bl){
        $hei=$newwid/($wid/$hei);
        $wid=$newwid;
    }else {
        $wid = $newhei * ($wid / $hei);
        $hei = $newhei;
    }
    //新建一张图片
    $images2 = imagecreatetruecolor($wid, $hei); 
    //将原图复制到新建图片中
    //imagecopyresampled(
        $dst_image, $src_image, 
        $dst_x, $dst_y, $src_x, $src_y,
        $dst_w, $dst_h, $src_w, $src_h)
    imagecopyresampled(
        $images2, $image, 
        0, 0, 0, 0, 
        $wid,$hei, $imgInfo[0],$imgInfo[1]);
    imagedestroy($image);//销毁原始图片
    //保存图片到新文件
    //代码输出图片的质量 0-100 100质量最高
    imagejpeg($images2, $ml.'slt_'.$wjm, 100); 
    imagedestroy($images2);
    return $ml.'slt_'.$wjm;
}
上一篇 下一篇

猜你喜欢

热点阅读