您的位置:

phppng缩略图,php 缩略图

本文目录一览:

php怎么生成缩略图

给你个函数吧

 // *****生成缩略图*****

     // 只考虑jpg,png,gif格式

     // $srcImgPath 源图象路径

     // $targetImgPath 目标图象路径

     // $targetW 目标图象宽度

     // $targetH 目标图象高度

     function makeThumbnail($srcImgPath,$targetImgPath,$targetW,$targetH)

     {

         $imgSize = GetImageSize($srcImgPath);

         $imgType = $imgSize[2];

         //@ 使函数不向页面输出错误信息

         switch ($imgType)

        {

            case 1:

                $srcImg = @ImageCreateFromGIF($srcImgPath);

                break;

            case 2:

                $srcImg = @ImageCreateFromJpeg($srcImgPath);

                break;

            case 3:

                $srcImg = @ImageCreateFromPNG($srcImgPath);

                break;

        }

         //取源图象的宽高

        $srcW = ImageSX($srcImg);

        $srcH = ImageSY($srcImg);

        if($srcW$targetW || $srcH$targetH)

        {

            $targetX = 0;

            $targetY = 0;

            if ($srcW  $srcH)

            {

                $finaW=$targetW;

                $finalH=round($srcH*$finaW/$srcW);

                $targetY=floor(($targetH-$finalH)/2);

            }

            else

            {

                $finalH=$targetH;

                $finaW=round($srcW*$finalH/$srcH);

                $targetX=floor(($targetW-$finaW)/2);

            }

              //function_exists 检查函数是否已定义

              //ImageCreateTrueColor 本函数需要GD2.0.1或更高版本

            if(function_exists("ImageCreateTrueColor"))

            {

                $targetImg=ImageCreateTrueColor($targetW,$targetH);

            }

            else

              {

                $targetImg=ImageCreate($targetW,$targetH);

            }

            $targetX=($targetX0)?0:$targetX;

            $targetY=($targetX0)?0:$targetY;

            $targetX=($targetX($targetW/2))?floor($targetW/2):$targetX;

            $targetY=($targetY($targetH/2))?floor($targetH/2):$targetY;

              //背景白色

            $white = ImageColorAllocate($targetImg, 255,255,255);

            ImageFilledRectangle($targetImg,0,0,$targetW,$targetH,$white);

            /*

                   PHP的GD扩展提供了两个函数来缩放图象:

                   ImageCopyResized 在所有GD版本中有效,其缩放图象的算法比较粗糙,可能会导致图象边缘的锯齿。

                   ImageCopyResampled 需要GD2.0.1或更高版本,其像素插值算法得到的图象边缘比较平滑,

                                                             该函数的速度比ImageCopyResized慢。

            */

            if(function_exists("ImageCopyResampled"))

            {

                ImageCopyResampled($targetImg,$srcImg,$targetX,$targetY,0,0,$finaW,$finalH,$srcW,$srcH);

            }

            else

            {

                ImageCopyResized($targetImg,$srcImg,$targetX,$targetY,0,0,$finaW,$finalH,$srcW,$srcH);

            }

              switch ($imgType) {

                case 1:

                    ImageGIF($targetImg,$targetImgPath);

                    break;

                case 2:

                    ImageJpeg($targetImg,$targetImgPath);

                    break;

                case 3:

                    ImagePNG($targetImg,$targetImgPath);

                    break;

            }

            ImageDestroy($srcImg);

            ImageDestroy($targetImg);

        }

         else //不超出指定宽高则直接复制

        {

            copy($srcImgPath,$targetImgPath);

            ImageDestroy($srcImg);

        }

     }

代码已经测试,成功运行!

生成 PNG 缩略图背景怎么透明? - PHP进阶讨论

nnd,刚才又看错了,我的透明的地方显示是白的,还以为正常呢,疏忽!!又仔细看了一下手册,发现可以用alpha通道来解决透明的问题,于是稍加改动就可以了[php][/php]这样就可以让原本透明的部分变透明了,用这种方法生成的png图像和直接用[i]调用原图像可以产生完全一样的效果

PHP略缩图怎么显示出后缀?求助,求助

把这行代码改了就可以了。

$filePath = $uppath.md5($filename."image"). '.'. strtolower(fileext($_FILES['file']['name']));//转为无图片后缀的名称,并加密

php如何实时缩小图片大小

PHP中缩放图像:

有两种改变图像大小的方法.

(1):ImageCopyResized() 函数在所有GD版本中有效,但其缩放图像的算法比较粗糙.

(2):ImageCopyResampled(),其像素插值算法得到的图像边缘比较平滑.质量较好(但该函数的速度比

ImageCopyResized() 慢).

两个函数的参数是一样的.如下:

ImageCopyResampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);

ImageCopyResized(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);

   它们两个都是从原图像(source)中抓取特定位置(sx,sy)复制图像qu区域到目标t

图像(destination)的特定位置(dx,dy)。另外dw,dh指定复制的图像区域在目标图像上的大小,sw,sh指定从原图像复制的图像区域

的大小。如果有ps经验的话,就相当于在原图像选择一块区域,剪切移动到目的图像上,同时有拉伸或缩小的操作。

例一:

(本例子是将图片按原大小的4/1的大小显示)

?php

// 指定文件路径和缩放比例

$filename = 'test.jpg';

$percent = 0.5;

// 指定头文件Content typezhi值

header('Content-type: image/jpeg');

// 获取图片的宽高

list($width, $height) = getimagesize($filename);

$newwidth = $width * $percent;

$newheight = $height * $percent;

// 创建一个图片。接收参数分别为宽高,返回生成的资源句柄

$thumb = imagecreatetruecolor($newwidth, $newheight);

//获取源文件资源句柄。接收参数为图片路径,返回句柄

$source = imagecreatefromjpeg($filename);

// 将源文件剪切全部域并缩小放到目标图片上。前两个为资源句柄

imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth,

$newheight, $width, $height);

// 输出给浏览器

imagejpeg($thumb);

?

ThinkPhp 生成多张不同尺寸的缩略图

其实很简单,那个缩略图宽度和高度可以定义多个,然后用逗号分割就好了。

//公共上传

    private function _upload($width, $height, $path, $prefix) {

        import('ORG.Net.UploadFile');

        $upload = new UploadFile(); // 实例化上传类

        $upload-maxSize = C('UPLOAD_SIZE'); // 设置附件上传大小

        $upload-savePath = './Uploads/' . $path; // 设置附件上传目录

        $upload-allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型

        $upload-saveRule = 'time';

        $upload-uploadReplace = true; //是否存在同名文件是否覆盖

        $upload-thumb = true; //是否对上传文件进行缩略图处理

        $upload-thumbMaxWidth = $width; //缩略图处理宽度

        $upload-thumbMaxHeight = $height; //缩略图处理高度

        $upload-thumbPrefix = $prefix; //缩略图前缀

        $upload-thumbPath = './Uploads/' . $path . date('Ymd', time()) . '/'; //缩略图保存路径

        $upload-thumbRemoveOrigin = true; //上传图片后删除原图片

        $upload-autoSub = true; //是否使用子目录保存图片

        $upload-subType = 'date'; //子目录保存规则

        $upload-dateFormat = 'Ymd'; //子目录保存规则为date时时间格式

        if (!$upload-upload()) {// 上传错误提示错误信息

            echo json_encode(array('msg' = $this-error($upload-getErrorMsg()), 'status' = 0));

        } else {// 上传成功 获取上传文件信息

            $info = $upload-getUploadFileInfo();

            $picname = $info[0]['savename'];

            

            $picname = explode('/', $picname);

            $picname = $picname[0] . '/' . $prefix . $picname[1];

            echo json_encode(array('status' = 1, 'msg' = $picname));

            

            

            

            

            

        }

    }

然后你比如生成300*300的的图片你就定义一个方法

例如: //商品缩略图上传

    public function uploadThumb() {

        return $this-_upload('230,160', '230,121', 'thumb/', 'shop_,thumb_');

    }

然后400*400的就又写一个方法:

//商品缩略图上传

    public function uploadThumb() {

        return $this-_upload('400,200', '400,200', 'thumb/', 'shop_,thumb_');

    }

然后调用的不同就好了

php怎么给psd图片生成缩略图???

psd是不会通过缩略图显示的,用其他能打开它的软件可以外,其他都是没法的。你这个php生成缩略图是在什么地方生成嘛,在网页上面的话浏览器只支持jpg/gif/png这几种图片格式,其他的都是个别支持不通用的。

求采纳