首页 > php图像处理 > php等比例生成缩略图程序

php等比例生成缩略图程序

这个程序很实用,但只是用来生成等比例生成缩略图,你要把文件上传到服务器,然后再由此函数来操作,有需要的朋友参考一下.

php等比例生成缩略图程序代码如下:

<?php
function reSizeImg($imgSrc, $resize_width, $resize_height, $isCut = false) {
    //图片的类型
    $type = substr(strrchr($imgSrc, ".") , 1);
    //初始化图象
    if ($type == "jpg") {
        $im = imagecreatefromjpeg($imgSrc);
    }
    if ($type == "gif") {
        $im = imagecreatefromgif($imgSrc);
    }
    if ($type == "png") {
        $im = imagecreatefrompng($imgSrc);
    }
    //目标图象地址
    $full_length = strlen($imgSrc);
    $type_length = strlen($type);
    $name_length = $full_length - $type_length;
    $name = substr($imgSrc, 0, $name_length - 1);
    $dstimg = $name . "_s." . $type;
    $width = imagesx($im);
    $height = imagesy($im);
    //生成图象
    //改变后的图象的比例
    $resize_ratio = ($resize_width) / ($resize_height);
    //实际图象的比例
    $ratio = ($width) / ($height);
    if (($isCut) == 1) //裁图
    {
        if ($ratio >= $resize_ratio) //高度优先
        {
            $newimg = imagecreatetruecolor($resize_width, $resize_height);
            imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio) , $height);
            ImageJpeg($newimg, $dstimg);
        }
        if ($ratio < $resize_ratio) //宽度优先
        {
            $newimg = imagecreatetruecolor($resize_width, $resize_height);
            imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio));
            ImageJpeg($newimg, $dstimg);
        }
    } else //不裁图
    {
        if ($ratio >= $resize_ratio) {
            $newimg = imagecreatetruecolor($resize_width, ($resize_width) / $ratio);
            imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height);
            ImageJpeg($newimg, $dstimg);
        }
        if ($ratio < $resize_ratio) {
            $newimg = imagecreatetruecolor(($resize_height) * $ratio, $resize_height);
            imagecopyresampled($newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height);
            ImageJpeg($newimg, $dstimg);
        }
    }
    ImageDestroy($im);
}
?>

调用方法简单, 直接reSizeImg就可以了, 参考很简单 . 


本文地址:http://www.phprm.com/tuxiang/fs4433.html

转载随意,但请附上文章地址:-)

标签:php等比例 php缩略图程序

相关文章

发表留言