首页 > php图像处理 > php 创建等比例图片代码

php 创建等比例图片代码

说明:$maxwidth和$maxheight只能传递一个,如果传最大宽度将自动计算高度,如果传最大高度将自动计算宽度.

返 回 值:如果创建成功返回文件保存的地址,否则返回false.

php 创建等比例图片代码如下:

<?php
/************************************************************************
* 函数名称:createSmallImg() 
* 函数说明:创建等比例图片 
* 输入参数: 
 $dir 保存路径 
 $source_img 原图片名称 
 $small_ex 缩率图文件名后缀 
 $maxwidth 最大宽度 
 $maxheight 最大高度 
* 说    明:$maxwidth和$maxheight只能传递一个,如果传最大宽度将自动计算高度,如果传最大高度将自动计算宽度 
* 返 回 值:如果创建成功返回文件保存的地址,否则返回false 
* 编 写 者:李小宇 
* 编写时间:2011/8/18 
**************************************************************************/
function createSmallImg($dir, $source_img, $small_ex = "_s", $maxwidth = '', $maxheight = '') {
    if (!emptyempty($maxwidth) && !emptyempty($maxheight)) {
        return false;
    }
    $img_name = substr($source_img, 0, -4);
    $img_ex = strtolower(substr(strrchr($source_img, ".") , 1));
    /*注释的这段用作直接在浏览器上显示图片
    $im=imagecreatefromjpeg($file);
    header("Content-type: image/jpeg");
    imagejpeg($im);*/
    switch ($img_ex) {
        case "jpg":
            $src_img = imagecreatefromjpeg($dir . $source_img);
            break;
        case "gif":
            $src_img = imagecreatefromgif($dir . $source_img);
            break;
        case "png":
            $src_img = imagecreatefrompng($dir . $source_img);
            break;
    } //开源代码phprm.com
    $old_width = imagesx($src_img);
    $old_height = imagesy($src_img);
    if (!emptyempty($maxheight) && $old_height >= $maxheight) {
        $new_height = $maxheight;
        $new_width = round(($old_width * $new_height) / $old_height);
    } elseif (!emptyempty($maxwidth) && $old_width >= $maxwidth) {
        $new_width = $maxwidth;
        $new_height = round(($old_height * $new_width) / $old_width);
    }
    if (!emptyempty($new_width) || !emptyempty($new_height)) {
        if ($img_ex == "jpg" || $img_ex == "png") {
            $dst_img = imagecreatetruecolor($new_width, $new_height);
        } else {
            $dst_img = imagecreate($new_width, $new_height);
        }
        imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
        $smallname = $dir . $img_name . $small_ex . "." . $img_ex;
        switch ($img_ex) {
            case "jpg":
                imagejpeg($dst_img, $smallname, 100);
                break;
            case "gif":
                imagegif($dst_img, $smallname);
                break;
            case "png":
                imagepng($dst_img, $smallname);
                break;
        }
    }
    return $smallname;
}


本文链接:http://www.phprm.com/tuxiang/fs4431.html

收藏随意^^请保留教程地址.

标签:php创建 比例图片

相关文章

发表留言