龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php简单缩略图类|image.class.php

时间:2014-07-13 02:01来源:网络整理 作者:网络 点击:
分享到:
php简单缩略图类|image.class.php 使用方法:$img = new iamge;$img-gt;resize(#39;dstimg.jpg#39;, #39;srcimg.jpg#39;, 300, 400);说明:这个是按照比例缩放,dstimg.jpg是目标文件,srcimg.jpg是源文件,后面的是目标

使用方法:

$img = new iamge;

$img->resize('dstimg.jpg', 'srcimg.jpg', 300, 400);

说明:这个是按照比例缩放,dstimg.jpg是目标文件,srcimg.jpg是源文件,后面的是目标文件的宽和高

$img->thumb('dstimg.jpg', 'scrimg.jpg', 300, 300);

说明:这个是按照比例缩略图,比如常用在头像缩略图的时候,dstimg.jpg是目标文件,srcimg.jpg是源文件,后面的是目标文件的宽和高

这个是针对GD库才这样麻烦的,如果采用Imagick的话,就只需要两个函数就实现上面的功能,去查下文档就找到了。

<?php
class image{

    public function resize($dstImg, $srcImg, $dstW, $dstH){
        list($srcW, $srcH) = getimagesize($srcImg);
        $scale = min($dstW/$srcW, $dstH/$srcH);
        $newW = round($srcW * $scale);
        $newH = round($srcH * $scale);
        $newImg = imagecreatetruecolor($newW, $newH);
        $srcImg = imagecreatefromjpeg($srcImg);
        imagecopyresampled($newImg, $srcImg, 0, 0, 0, 0, $newW, $newH, $srcW, $srcH);
        imagejpeg($newImg, $dstImg);
    }

    public function thumb($dstImg, $srcImg, $dstW, $dstH){
        list($srcW, $srcH) = getimagesize($srcImg);
        $scale = max($dstW/$srcW, $dstH/$srcH);
        $newW = round($dstW/$scale);
        $newH = round($dstH/$scale);
        $x = ($srcW - $newW)/2;
        $y = ($srcH - $newH)/2;
        $newImg = imagecreatetruecolor($dstW, $dstH);
        $srcImg = imagecreatefromjpeg($srcImg);
        imagecopyresampled($newImg, $srcImg, 0, 0, $x, $y, $dstW, $dstH, $newW, $newH);
        imagejpeg($newImg, $dstImg);
    }

}

function createFromType($type, $srcImg){
    $function = "imagecreatefrom$type";
    return $function($srcImg);
}
//为了解决不同图片格式的问题
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接