《璇》

自动压缩

<?php

makeThumb(100, 50);

//参数1:压缩的范围宽度
//参数2:压缩的范围的高度
function makeThumb($area_w,$area_h)
{

    //参数2:原图资源(将该图片资源压缩之后,再保存到目的地画布中)
    $src_image = imagecreatefrompng('bs.png');
    //参数3、4:目的地(画布的起点坐标)
    $dst_x = 0;
    $dst_y = 0;
    //参数5、6:原图的(起点坐标)
    $src_x = 0;
    $src_y = 0;
    //参数9、10:原图的宽度、高度
    //通过imagesx()函数获得图像资源的宽度、imagesy()获得图像资源的高度
    $src_w = imagesx($src_image);
    $src_h = imagesy($src_image);
    
    //参数7、8:目的地(画布的宽度、高度)
    //计算压缩的比例
    if($src_w / $area_w >= $src_h / $area_h){
        $scale = $src_w / $area_w;
    }else{
        $scale = $src_h / $area_h;
    }
    
    $dst_w = (int)$src_w / $scale;
    $dst_h = (int)$src_h / $scale;
    
    
    //参数1:目的地图像资源(通常指的是画布资源)
    $dst_image = imagecreatetruecolor($dst_w, $dst_h);
    $color = imagecolorallocate($dst_image, 22, 139, 0);
    imagefill($dst_image, 0, 0, $color);
    
    
    imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
    
    //可以保存、也可以输出到浏览器
    //1. 直接在浏览器输出
    header("Content-Type:image/png");
    imagepng($dst_image);
    
}

//2. 保存到本地,只需要给imagepng()函数增加第二个参数(保存地址)即可
//imagepng($dst_image,'./thumb_bs.png');

 

posted @ 2018-10-08 19:08  醉风云  阅读(204)  评论(0编辑  收藏  举报