php生成缩略图的方法介绍

php生成缩略图的方法:首先创建一个PHP示例文件;然后通过“header("content-type:image/png");”设定生成图片格式;最后通过“image_resize”方法按指定大小生成缩略图即可。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、南安网站维护、网站推广。

推荐:《PHP视频教程》

PHP生成图片缩略图的三种方法:

1、把大图缩略到缩略图指定的范围内,可能有留白(原图细节不丢失)

2、把大图缩略到缩略图指定的范围内,不留白(原图会居中缩放,把超出的部分裁剪掉)

3、把大图缩略到缩略图指定的范围内,不留白(原图会剪切掉不符合比例的右边和下边)

下面是代码:

<?php
// +----------------------------------------------------------------------
// |  把大图缩略到缩略图指定的范围内,可能有留白(原图细节不丢失)
// +---------------------------------------------------------------------- 
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "stand_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//设定生成图片格式
echo file_get_contents($filename);
  
function image_resize($f, $t, $tw, $th){
// 按指定大小生成缩略图,而且不变形,缩略图函数
        $temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
    list($fw, $fh, $tmp) = getimagesize($f);
    if(!$temp[$tmp]){
                return false;
        }
        $tmp = $temp[$tmp];
        $infunc = "imagecreatefrom$tmp";
        $outfunc = "image$tmp";
    $fimg = $infunc($f);
    // 使缩略后的图片不变形,并且限制在 缩略图宽高范围内
        if($fw/$tw > $fh/$th){
            $th = $tw*($fh/$fw);
        }else{
            $tw = $th*($fw/$fh);
        }
    $timg = imagecreatetruecolor($tw, $th);
        imagecopyresampled($timg, $fimg, 0,0, 0,0, $tw,$th, $fw,$fh);
        if($outfunc($timg, $t)){
                return true;
        }else{
                return false;
        }
}
?>

<?php
// +----------------------------------------------------------------------
// |  把大图缩略到缩略图指定的范围内,不留白(原图会居中缩放,把超出的部分裁剪掉)
// +----------------------------------------------------------------------
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "cut_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//设定生成图片格式
echo file_get_contents($filename);
  
// 按指定大小生成缩略图,而且不变形,缩略图函数
function image_resize($f, $t, $tw, $th){
        $temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
        list($fw, $fh, $tmp) = getimagesize($f);
        if(!$temp[$tmp]){
                return false;
        }
        $tmp = $temp[$tmp];
        $infunc = "imagecreatefrom$tmp";
        $outfunc = "image$tmp";
    $fimg = $infunc($f);
//      $fw = 10;
//      $fh = 4;
//      $tw = 4;
//      $th = 2;
        // 把图片铺满要缩放的区域
        if($fw/$tw > $fh/$th){
            $zh = $th;
            $zw = $zh*($fw/$fh);
            $_zw = ($zw-$tw)/2;
        }else{
            $zw = $tw;
            $zh = $zw*($fh/$fw);
            $_zh = ($zh-$th)/2;
        }
//        echo $zw."<br>";   
//        echo $zh."<br>";   
//        echo $_zw."<br>";   
//        echo $_zh."<br>";   
//        exit;
        $zimg = imagecreatetruecolor($zw, $zh);
        // 先把图像放满区域
        imagecopyresampled($zimg, $fimg, 0,0, 0,0, $zw,$zh, $fw,$fh);
    // 再截取到指定的宽高度
        $timg = imagecreatetruecolor($tw, $th);
        imagecopyresampled($timg, $zimg, 0,0, 0+$_zw,0+$_zh, $tw,$th, $zw-$_zw*2,$zh-$_zh*2);
//          if($outfunc($timg, $t)){
                return true;
        }else{
                return false;
        }
}
  
?>

<?php
// +----------------------------------------------------------------------
// | 把大图缩略到缩略图指定的范围内,不留白(原图会剪切掉不符合比例的右边和下边)
// +----------------------------------------------------------------------
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "strict_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//设定生成图片格式
echo file_get_contents($filename);
  
function image_resize($f, $t, $tw, $th){
// 按指定大小生成缩略图,而且不变形,缩略图函数
        $temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
    list($fw, $fh, $tmp) = getimagesize($f);
    if(!$temp[$tmp]){
                return false;
        }
        $tmp = $temp[$tmp];
        $infunc = "imagecreatefrom$tmp";
        $outfunc = "image$tmp";
    $fimg = $infunc($f);
    if($fw/$tw > $fh/$th){
                $fw = $tw * ($fh/$th);
        }else{
                $fh = $th * ($fw/$tw);
        }
    $timg = imagecreatetruecolor($tw, $th);
        imagecopyresampled($timg, $fimg, 0,0, 0,0, $tw,$th, $fw,$fh);
        if($outfunc($timg, $t)){
                return true;
        }else{
                return false;
        }
}
?>

网站标题:php生成缩略图的方法介绍
转载源于:https://www.cdcxhl.com/article38/cgsipp.html

成都网站建设公司_创新互联,为您提供自适应网站软件开发电子商务企业网站制作网站排名网站收录

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都seo排名网站优化