首页 / PHP / php生成缩略图的方法介绍
php生成缩略图的方法介绍
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php生成缩略图的方法介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4129字,纯文字阅读大概需要6分钟。
内容图文
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.php.cn/php-ask-458473.html内容总结
以上是互联网集市为您收集整理的php生成缩略图的方法介绍全部内容,希望文章能够帮你解决php生成缩略图的方法介绍所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。