我们在运用PHP语言进行实际代码编写的时候,遇到一个新的需求,通常都会通过自己不断积累的经验来解决这以需求的实现。下面我们为了增加大家的编码经验,特地介绍了一下有关PHP生成缩略图的相关方法。#t#
PHP生成缩略图HTML代码
- < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- < HTML>
- < HEAD>
- < TITLE> 上传图片 < /TITLE>
- < META NAME="Generator" CONTENT="EditPlus">
- < META NAME="Author" CONTENT="">
- < META NAME="Keywords" CONTENT="">
- < META NAME="Description" CONTENT="">
- < meta http-equiv="Content-Type" content="text/html; charset=gbk" />
- < /HEAD>
- < BODY>
- < FORM METHOD="POST" ACTION="tu.php?act=upload" enctype="multipart/form-data" >
- < p>< INPUT TYPE="file" NAME="file"/>< /p>
- < p>< INPUT TYPE="submit" value="hao"/> < INPUT TYPE="reset"/>< /p>
- < /FORM>
- < /BODY>
- < /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生成缩略图的相关实现方法。