深入探讨PHP生成缩略图的实现方法

开发 后端
PHP生成缩略图的实现对于刚刚接触PHP语言,并没有太多实际编程经验的新手来说是一个比较难以掌握的知识。下面我们就为大家奉上了这一功能实现的代码示例。

我们在运用PHP语言进行实际代码编写的时候,遇到一个新的需求,通常都会通过自己不断积累的经验来解决这以需求的实现。下面我们为了增加大家的编码经验,特地介绍了一下有关PHP生成缩略图的相关方法。#t#

PHP生成缩略图HTML代码

 

  1. < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
  2. < HTML> 
  3. < HEAD> 
  4. < TITLE> 上传图片 < /TITLE> 
  5. < META NAME="Generator" CONTENT="EditPlus"> 
  6. < META NAME="Author" CONTENT=""> 
  7. < META NAME="Keywords" CONTENT=""> 
  8. < META NAME="Description" CONTENT=""> 
  9. < meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 
  10. < /HEAD> 
  11.  
  12. < BODY> 
  13. < FORM METHOD="POST" ACTION="tu.php?act=upload" enctype="multipart/form-data" > 
  14. < p>< INPUT TYPE="file" NAME="file"/>< /p> 
  15. < p>< INPUT TYPE="submit" value="hao"/>  < INPUT TYPE="reset"/>< /p> 
  16. < /FORM> 
  17. < /BODY> 
  18. < /HTML> 

 


PHP生成缩略图PHP代码

 

< ?php  
/*后台登陆界面  
*黄春龙学习编写  
*首写时间:2009-10-27  
*更新时间:2009/11/24  
*/  
require_once '../xmphp/init.php';
//全站配置文件  
require_once XMPHP_COMMON.'/smarty.php';
//smarty功能  
require_once XMPHP_COMMON.'/mysql.php';
//mysql功能  
require_once XMPHP_COMMON.'/func.php';
//常用函数  
if(isset($_GET['act'])&&$_GET['act']
=='upload'){  
$file=$_FILES['file'];   $info=pathinfo($file['name']);   $a=array('jpg','gif','png');   if(!in_array($info['extension'],$a)){   alert("请选择jpg,gif,png格式的图片
进行上传");  
exit;   }   if($file['name'] !=''){   $dirname=date('Ym');   $dirname='../upload/'.$dirname; //原图路径   $xin=$dirname.'/s';//PHP生成缩略图路径   if(!file_exists($xin)){   @mkdir($xin);   }   $image1=$info['filename'].'120_120'.'.'
.$info['extension'];//缩略图名称  
$image2=$info['filename'].'300_300'.'.'
.$info['extension'];//缩略图名称  
list($imagw,$imagh)=getimagesize($file
['tmp_name']);//取得原图的宽高(另外$file
['tmp_name']只是一个临时文件路径,有时可能
会报错,如报错只需把临时文件路径改成你上传
后的原图的路径即可)  
//120图判断各种情况来取得缩略图的宽高   if($imagw< =120&&$imagh< =120){   $m120w=$imagw;   $m120h=$imagh;   }elseif($imagw>$imagh)   {   $m120w=120;   $m120h=intval($m120w/number_format(
$imagw/$imagh,2));//缩略图的宽除以(原
图的宽除以原图的高)number_format查手册  
}   else   {   $m120h=300;   $m120w=intval($m120h/number_format(
$imagh/$imagw,2));//缩略图的高除以(原图
的高除以原图的宽)number_format查手册  
}   //300图判断各种情况来取得缩略图的宽高   if($imagw< =300&&$imagh< =300){   $m300w=$imagw;   $m300h=$imagh;   }elseif($imagw>$imagh){   $m300w=300;   $m300h=intval($m300w/number_format(
$imagw/$imagh,2));//缩略图的宽除以(原
图的宽除以原图的高)number_format查手册  
}else{   $m300h=300;   $m300w=intval($m300h/number_format(
$imagh/$imagw,2));//缩略图的高除以(原
图的高除以原图的宽)number_format查手册  
}   if($info['extension']=='jpg'){   $info['extension']='jpeg';//判断图像类
型如果是JPG的则把它转换成JPEG的因为图像处
理函数在处理JPG的时候都是用的JPEG而不是JPG  
}   $iml='imagecreatefrom'.$info['extension']; //取得不同图片格式的不同函数   $yuan=$iml($file['tmp_name']); //根据前面取的不同函数来取的原图的标识   $mu1=imagecreatetruecolor($m120w,$m120h); //取的要生成的缩略图的标识   $mu2=imagecreatetruecolor($m300w,$m300h); //取的要生成的缩略图的标识   $c='image'.$info['extension']; //生成输出缩略图的函数,不能分开写,否则报错   imagecopyresampled($mu1,$yuan,0,0,0,
0,$m120w,$m120h,$imagw,$imagh);//生成缩略图120  
$res=$c($mu1,$xin.'/'.$image1); //存放缩略图   if(!$res){   alert('生成120缩略图失败');   exit;   }   imagecopyresampled($mu2,$yuan,0,0
,0,0,$m300w,$m300h,$imagw,$imagh);
//PHP生成缩略图生成缩略图120   $res=$c($mu2,$xin.'/'.$image2); //存放缩略图   if($res){   alert('生成300缩略图成功');   exit;   }   }   }   $tpl->display("tu/tu.html");   ?> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.

以上这一大段的代码示例就是PHP生成缩略图的相关实现方法。

责任编辑:曹凯 来源: 百度博客
相关推荐

2009-12-01 16:34:21

PHP表单

2009-08-12 16:33:37

.NET生成缩略图

2009-12-10 13:14:26

PHP下拉框

2010-07-21 09:38:15

PHP缓存技术

2009-12-07 16:07:03

PHP类的继承

2009-08-28 15:19:17

C#实现缩略图

2013-08-12 15:26:49

测试

2009-12-07 13:55:58

PHP array_m

2009-12-02 16:46:18

PHPMailer

2009-12-01 15:48:12

提高PHP运行效率

2009-12-02 11:20:56

PHP命令行参数

2013-12-02 15:07:57

jQuery插件

2009-10-26 17:38:22

VB.NET实现缩略图

2009-12-01 10:11:51

PHP自动获取关键词

2012-07-18 20:59:40

jQuery

2009-12-07 19:06:20

PHP mysql_f

2019-02-15 14:00:57

Linux命令缩略图

2020-11-02 14:49:46

GitHub Java图片

2009-10-30 16:31:55

VB.NET重载方法

2022-02-21 16:38:19

Serverless图片视频
点赞
收藏

51CTO技术栈公众号