最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

php生成缩略图的方法介绍

来源:动视网 责编:小采 时间:2020-11-02 18:27:19
文档

php生成缩略图的方法介绍

php生成缩略图的方法介绍:php生成缩略图的方法:首先创建一个PHP示例文件;然后通过header("content-type:image/png");设定生成图片格式;最后通过image_resize方法按指定大小生成缩略图即可。推荐:《PHP视频教程》PHP生成图片缩略图的三种方法:1、把大图
推荐度:
导读php生成缩略图的方法介绍:php生成缩略图的方法:首先创建一个PHP示例文件;然后通过header("content-type:image/png");设定生成图片格式;最后通过image_resize方法按指定大小生成缩略图即可。推荐:《PHP视频教程》PHP生成图片缩略图的三种方法:1、把大图


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生成缩略图的方法介绍

php生成缩略图的方法介绍:php生成缩略图的方法:首先创建一个PHP示例文件;然后通过header("content-type:image/png");设定生成图片格式;最后通过image_resize方法按指定大小生成缩略图即可。推荐:《PHP视频教程》PHP生成图片缩略图的三种方法:1、把大图
推荐度:
标签: 方法 办法 介绍
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top