PHP图片等比例缩放生成缩略图函数分享_php实例

复制代码 代码如下:

<?php
    /*
    *@im     //需要缩放的图片资源
    *@filetype //制作的缩略图文件类型
    *@dstimW   //缩放的图片的宽度
    *@dstimH  //缩放的图片的高度
    *@thumbname //缩略图文件名字
function makethumb($im,$dstimW,$dstimH,$thumbname ,$filetype){
            //获取im的宽度和高度
        $pic_W=imagesx($im);
        $pic_H=imagesy($im);
        $arr = array();
            swith($filetype){
                case 'jpg':
                        $arr[$filetype]="imagejpeg";
                        break;
                case 'png';
                        $arr[$filetype]="imagepng";
                        break;
                case 'jif';
                        $arr[$filetype]="imagegif";
                }
        if(($dstimgW && $dstimgW<$pic_W) || ($dstimgH && $dstimgH<$pic_H) ){
                if($dstimgW && $dstimgW<$pic_W){
                    $dsimgWratio = $dstimgW / $pic_w;
                    $resizereagW =true;

                }
                if($dstimgH && $ $dstimgH <$pic_H){
                    $dsimgHratio = $dstimgH/$pic_H;
                    $resizerreagH =true;
                }
                //缩略图宽高和原图宽高比,取最小的那个
                if($resizereagW && $resizerreagH){
                    if($dsimgWratio<$dsimgHratio)
                        $radio = $dsimgWratio;
                    else
                        $radio = $dsimgHratio;     
                }
                if($resizereagW && !$resizerreagH ){
                        $radio = $dsimgWratio;
                }
                if(!$resizereagW && $resizerreagH){
                       $radio = $dsimgHratio ;
                }
                $imgnewW = $pic_W * $radio;
                $imgnewH = $pic_H * $radio;
                if(function_exists("imgcopyresampled")){
                      //创建目标资源画布
                    $dst = imagecreatetruecolor ($imgnewW, $imgnewH);
                    imagecopyresampled ($dst,$im,0,0,0,0,$imgnewW,$imgnewH,$pic_W,$pic_H);
                }else{
             $dst=imagecreate($imgnewW, $imgnewH);
             imagecopyresized ($dst, $im,0,0,0,0,$imgnewW,$imgnewH,$imgnewH,$pic_W,$pic_H);
                }

        $arr[$filetype]($dst,$thumbname.".$filetype");
        imagedestroy ($dst);
    }else{//缩略图自身的宽和高已经大于了原图的宽和高
           //则缩略图的宽和缩略的高就是原图的宽和原图的高
         $arr[$filetype]($im,$thumbname.".$filetype");
         imagedestroy();
    }
}
?>

时间: 2024-08-30 15:56:55

PHP图片等比例缩放生成缩略图函数分享_php实例的相关文章

使用gd库实现php服务端图片裁剪和生成缩略图功能分享_php实例

裁剪示例: 最终裁剪成的图片: 其中虚线框内就是要裁剪出来的图片,最终保存成100宽的图片.代码如下: 复制代码 代码如下: $src_path = '1.jpg';//创建源图的实例$src = imagecreatefromstring(file_get_contents($src_path)); //裁剪开区域左上角的点的坐标$x = 100;$y = 12;//裁剪区域的宽和高$width = 200;$height = 200;//最终保存成图片的宽和高,和源要等比例,否则会变形$fi

PHP实现生成透明背景的PNG缩略图函数分享_php实例

之前在WEB开发笔记写过一个PHP生成缩略图的函数,虽然那个函数能够生成缩略图,但是有一定的缺陷,在生成PNG缩略图的时候,背景是黑色,今天又写了一个函数来弥补一下.代码很简单,就是imagealphablending($thumb,false);与imagesavealpha($thumb,true);很重要.主要就是把PNG的alpha值保存,不要丢失而已. 函数如下: <?PHP /* *$sourePic:原图路径 * $smallFileName:小图名称 * $width:小图宽 *

PHP图片上传并生成缩略图函数

自己写的 PHP图片上传并生成缩略图函数 请参考 函数分为三部分 一.PHP 图片上传函数 二.PHP 生成缩略图函数 三.PHP消息提示函数 //PHP 图片上传函数如下: function img_upload($form_name,$size,$dir,$file_name,$width,$height){  //文件域名称,文件大小限制,文件存放路径,缩略图宽度,缩略图高度  $file_type_arr=array("image/png"=>"png"

支持png透明图片的php生成缩略图类分享_php技巧

注:此功能依赖GD2图形库 最近要用php生成缩略图,在网上找了一下,发现了这篇文章:PHP生成图片缩略图 试用了一下后,发现有这样几个问题: 1.png图片生成的缩略图是jpg格式的 2.png图片生成的缩略图没有了透明(半透明)效果(填充了黑色背景) 3.代码语法比较老 因此,在这个版本的基础上简单修改优化了一下. PHP生成缩略图类 <?php /* * desc: Resize Image(png, jpg, gif) * author: 十年后的卢哥哥 * date: 2014.11.

PHP生成等比缩略图类和自定义函数分享_php实例

共有两种等比例缩略图方法可以借鉴 一.为类文件,实例化之后即可使用 二.为自定义方法,比较轻巧 类文件 复制代码 代码如下: $resizeimage = new resizeimage("./shawn.jpg", "200", "100", "0","../pic/shawnsun.jpg"); //实例化下面的类,就能生成缩略图 //其中,源文件和缩略图地址可以相同,200,100分别代表宽和高,第四

Thinkphp调用Image类生成缩略图的方法_php实例

本文实例讲述了Thinkphp调用Image类生成缩略图的方法.分享给大家供大家参考.具体分析如下: Thinkphp的Image类 在ThinkPHP/Extend/Library/ORG/Util/Image.class.php中. 调用方法如下: import("ORG.Util.Image"); $Img = new Image();//实例化图片类对象 $image_path = './图片路径'; //若当前php文件在Thinkphp的中APP_PATH路径中 //'./

php计算2个日期的差值函数分享_php实例

非常简单实用的函数分享给大家, 奉上代码: 复制代码 代码如下: /**      *    日期-计算2个日期的差值      *  @return int      */     public function get_difference($date, $new_date) {         $date = strtotime($date);         $new_date = strtotime($new_date);         return abs(ceil(($date

php生成唯一的订单函数分享_php实例

关于生成订单号的解决方案 电子商务及类电子商务的系统越来越多,我相信订单号问题是这类系统中最常见不过的一个问题了,但今天还是想谈谈. 这几天由于工作需要接手了另外一同事前期开发的一个交易系统,原本使用的是uniqid()函数生成的.理论上也是不会出现重复,但由于一些特殊的原因,不得不重新制作一款订单号的生成函数 复制代码 代码如下: /**      * 生成唯一的订单号 20110809111259232312      * 2011-年日期      * 08-月份      * 09-日期

PHP生成自定义长度随机字符串的函数分享_php实例

php随机生成字符串可以自己定义自己所需要的长度,在实际应用开发中,经常遇到. 复制代码 代码如下: //随机生成字符串function random($length) {     srand(date("s"));     $possible_charactors = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";     $string = "";     while(strlen($string)<$l