求PHP生成缩略图的功能 求PHP生成缩略图的功能!从网上找了一段代码,生成的缩略图色彩失真。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 31.$image1=$info['filename'].'120_120'.'.' .$info['extension'];//缩略图名称 32.$image2=$info['filename'].'300_300'.'.' .$info['extension'];//缩略图名称 33.list($imagw,$imagh)=getimagesize($file ['tmp_name']);//取得原图的宽高(另外$file ['tmp_name']只是一个临时文件路径,有时可能 会报错,如报错只需把临时文件路径改成你上传 后的原图的路径即可) 34.//120图判断各种情况来取得缩略图的宽高 35.if($imagw< =120&&$imagh< =120){ 36.$m120w=$imagw; 37.$m120h=$imagh; 38.}elseif($imagw>$imagh) 39.{ 40.$m120w=120; 41.$m120h=intval($m120w/number_format( $imagw/$imagh,2));//缩略图的宽除以(原 图的宽除以原图的高)number_format查手册 42.} 43.else 44.{ 45.$m120h=300; 46.$m120w=intval($m120h/number_format( $imagh/$imagw,2));//缩略图的高除以(原图 的高除以原图的宽)number_format查手册 47.} 48.//300图判断各种情况来取得缩略图的宽高 49.if($imagw< =300&&$imagh< =300){ 50.$m300w=$imagw; 51.$m300h=$imagh; 52.}elseif($imagw>$imagh){ 53.$m300w=300; 54.$m300h=intval($m300w/number_format( $imagw/$imagh,2));//缩略图的宽除以(原 图的宽除以原图的高)number_format查手册 55.}else{ 56.$m300h=300; 57.$m300w=intval($m300h/number_format( $imagh/$imagw,2));//缩略图的高除以(原 图的高除以原图的宽)number_format查手册 58.} 59.if($info['extension']=='jpg'){ 60.$info['extension']='jpeg';//判断图像类 型如果是JPG的则把它转换成JPEG的因为图像处 理函数在处理JPG的时候都是用的JPEG而不是JPG 61.} 62.$iml='imagecreatefrom'.$info['extension'];63.//取得不同图片格式的不同函数 64.$yuan=$iml($file['tmp_name']);65.//根据前面取的不同函数来取的原图的标识 66.$mu1=imagecreatetruecolor($m120w,$m120h);67.//取的要生成的缩略图的标识 68.$mu2=imagecreatetruecolor($m300w,$m300h);69.//取的要生成的缩略图的标识 70.$c='image'.$info['extension'];71.//生成输出缩略图的函数,不能分开写,否则报错 72.imagecopyresampled($mu1,$yuan,0,0,0, 0,$m120w,$m120h,$imagw,$imagh);//生成缩略图120 73.$res=$c($mu1,$xin.'/'.$image1);74.//存放缩略图 75.if(!$res){ 76.alert('生成120缩略图失败'); 77.exit; 78.} 79.imagecopyresampled($mu2,$yuan,0,0 ,0,0,$m300w,$m300h,$imagw,$imagh);80.//PHP生成缩略图生成缩略图120 81.$res=$c($mu2,$xin.'/'.$image2);82.//存放缩略图 83.if($res){ 84.alert('生成300缩略图成功'); 这里只列出了一部分代码,具体的参考:http://www.phpnewer.com/index.php/Ymgx/detail/id/38 试下这个1.< ?php 2./*后台登陆界面 3.*黄春龙学习编写 4.*首写时间:2009-10-27 5.*更新时间:2009/11/24 6.*/ 7.require_once '../xmphp/init.php';8.//全站配置文件 9.require_once XMPHP_COMMON.'/smarty.php';10.//smarty功能 11.require_once XMPHP_COMMON.'/mysql.php';12.//mysql功能 13.require_once XMPHP_COMMON.'/func.php';14.//常用函数 15.if(isset($_GET['act'])&&$_GET['act'] =='upload'){ 16.$file=$_FILES['file']; 17.$info=pathinfo($file['name']); 18.$a=array('jpg','gif','png'); 19.if(!in_array($info['extension'],$a)){ 20.alert("请选择jpg,gif,png格式的图片 进行上传"); 21.exit; 22.} 23.if($file['name'] !=''){ 24.$dirname=date('Ym'); 25.$dirname='../upload/'.$dirname;26.//原图路径 27.$xin=$dirname.'/s';//PHP生成缩略图路径 28.if(!file_exists($xin)){ 29.@mkdir($xin); 30.} 31.$image1=$info['filename'].'120_120'.'.' .$info['extension'];//缩略图名称 32.$image2=$info['filename'].'300_300'.'.' .$info['extension'];//缩略图名称 33.list($imagw,$imagh)=getimagesize($file ['tmp_name']);//取得原图的宽高(另外$file ['tmp_name']只是一个临时文件路径,有时可能 会报错,如报错只需把临时文件路径改成你上传 后的原图的路径即可) 34.//120图判断各种情况来取得缩略图的宽高 35.if($imagw< =120&&$imagh< =120){ 36.$m120w=$imagw; 37.$m120h=$imagh; 38.}elseif($imagw>$imagh) 39.{ 40.$m120w=120; 41.$m120h=intval($m120w/number_format( $imagw/$imagh,2));//缩略图的宽除以(原 图的宽除以原图的高)number_format查手册 42.} 43.else 44.{ 45.$m120h=300; 46.$m120w=intval($m120h/number_format( $imagh/$imagw,2));//缩略图的高除以(原图 的高除以原图的宽)number_format查手册 47.} 48.//300图判断各种情况来取得缩略图的宽高 49.if($imagw< =300&&$imagh< =300){ 50.$m300w=$imagw; 51.$m300h=$imagh; 52.}elseif($imagw>$imagh){ 53.$m300w=300; 54.$m300h=intval($m300w/number_format( $imagw/$imagh,2));//缩略图的宽除以(原 图的宽除以原图的高)number_format查手册 55.}else{ 56.$m300h=300; 57.$m300w=intval($m300h/number_format( $imagh/$imagw,2));//缩略图的高除以(原 图的高除以原图的宽)number_format查手册 58.} 59.if($info['extension']=='jpg'){ 60.$info['extension']='jpeg';//判断图像类 型如果是JPG的则把它转换成JPEG的因为图像处 理函数在处理JPG的时候都是用的JPEG而不是JPG 61.} 62.$iml='imagecreatefrom'.$info['extension'];63.//取得不同图片格式的不同函数 64.$yuan=$iml($file['tmp_name']);65.//根据前面取的不同函数来取的原图的标识 66.$mu1=imagecreatetruecolor($m120w,$m120h);67.//取的要生成的缩略图的标识 68.$mu2=imagecreatetruecolor($m300w,$m300h);69.//取的要生成的缩略图的标识 70.$c='image'.$info['extension'];71.//生成输出缩略图的函数,不能分开写,否则报错 72.imagecopyresampled($mu1,$yuan,0,0,0, 0,$m120w,$m120h,$imagw,$imagh);//生成缩略图120 73.$res=$c($mu1,$xin.'/'.$image1);74.//存放缩略图 75.if(!$res){ 76.alert('生成120缩略图失败'); 77.exit; 78.} 79.imagecopyresampled($mu2,$yuan,0,0 ,0,0,$m300w,$m300h,$imagw,$imagh);80.//PHP生成缩略图生成缩略图120 81.$res=$c($mu2,$xin.'/'.$image2);82.//存放缩略图 83.if($res){ 84.alert('生成300缩略图成功'); 85.exit; 86.} 87.} 88.} 89.$tpl->display("tu/tu.html"); 90.?> 详细原文地址:http://www.phpnewer.com/index.php/Ymgx/detail/id/38 求助:正则表达式加链接 php对像转字符的问题,在线等 为什么说php可以采用面向对象和面向过程两种开发模式 请问:cookie中的字符为什么会被自动转义 好久不来,发现自己严重脱节中,现求解PHP的MVC到底是什么? MYSQL时间搜索问题 我用wamp装了PHP,请问apache下的php.ini 和php文件下 php.ini 有什么区别? 一个奇怪的问题 求一句随机查询的 SQL 各位大侠,在PHP中如何打开并读写MDB的数据库,不用ODBC!以及怎样用ADO??? 各位有没有在excel做过主从记录显示 php读取excel文件,输出的值乱码
32.$image2=$info['filename'].'300_300'.'.' .$info['extension'];//缩略图名称
33.list($imagw,$imagh)=getimagesize($file ['tmp_name']);//取得原图的宽高(另外$file ['tmp_name']只是一个临时文件路径,有时可能 会报错,如报错只需把临时文件路径改成你上传 后的原图的路径即可)
34.//120图判断各种情况来取得缩略图的宽高
35.if($imagw< =120&&$imagh< =120){
36.$m120w=$imagw;
37.$m120h=$imagh;
38.}elseif($imagw>$imagh)
39.{
40.$m120w=120;
41.$m120h=intval($m120w/number_format( $imagw/$imagh,2));//缩略图的宽除以(原 图的宽除以原图的高)number_format查手册
42.}
43.else
44.{
45.$m120h=300;
46.$m120w=intval($m120h/number_format( $imagh/$imagw,2));//缩略图的高除以(原图 的高除以原图的宽)number_format查手册
47.}
48.//300图判断各种情况来取得缩略图的宽高
49.if($imagw< =300&&$imagh< =300){
50.$m300w=$imagw;
51.$m300h=$imagh;
52.}elseif($imagw>$imagh){
53.$m300w=300;
54.$m300h=intval($m300w/number_format( $imagw/$imagh,2));//缩略图的宽除以(原 图的宽除以原图的高)number_format查手册
55.}else{
56.$m300h=300;
57.$m300w=intval($m300h/number_format( $imagh/$imagw,2));//缩略图的高除以(原 图的高除以原图的宽)number_format查手册
58.}
59.if($info['extension']=='jpg'){
60.$info['extension']='jpeg';//判断图像类 型如果是JPG的则把它转换成JPEG的因为图像处 理函数在处理JPG的时候都是用的JPEG而不是JPG
61.}
62.$iml='imagecreatefrom'.$info['extension'];
63.//取得不同图片格式的不同函数
64.$yuan=$iml($file['tmp_name']);
65.//根据前面取的不同函数来取的原图的标识
66.$mu1=imagecreatetruecolor($m120w,$m120h);
67.//取的要生成的缩略图的标识
68.$mu2=imagecreatetruecolor($m300w,$m300h);
69.//取的要生成的缩略图的标识
70.$c='image'.$info['extension'];
71.//生成输出缩略图的函数,不能分开写,否则报错
72.imagecopyresampled($mu1,$yuan,0,0,0, 0,$m120w,$m120h,$imagw,$imagh);//生成缩略图120
73.$res=$c($mu1,$xin.'/'.$image1);
74.//存放缩略图
75.if(!$res){
76.alert('生成120缩略图失败');
77.exit;
78.}
79.imagecopyresampled($mu2,$yuan,0,0 ,0,0,$m300w,$m300h,$imagw,$imagh);
80.//PHP生成缩略图生成缩略图120
81.$res=$c($mu2,$xin.'/'.$image2);
82.//存放缩略图
83.if($res){
84.alert('生成300缩略图成功');
这里只列出了一部分代码,具体的参考:http://www.phpnewer.com/index.php/Ymgx/detail/id/38
1.< ?php
2./*后台登陆界面
3.*黄春龙学习编写
4.*首写时间:2009-10-27
5.*更新时间:2009/11/24
6.*/
7.require_once '../xmphp/init.php';
8.//全站配置文件
9.require_once XMPHP_COMMON.'/smarty.php';
10.//smarty功能
11.require_once XMPHP_COMMON.'/mysql.php';
12.//mysql功能
13.require_once XMPHP_COMMON.'/func.php';
14.//常用函数
15.if(isset($_GET['act'])&&$_GET['act'] =='upload'){
16.$file=$_FILES['file'];
17.$info=pathinfo($file['name']);
18.$a=array('jpg','gif','png');
19.if(!in_array($info['extension'],$a)){
20.alert("请选择jpg,gif,png格式的图片 进行上传");
21.exit;
22.}
23.if($file['name'] !=''){
24.$dirname=date('Ym');
25.$dirname='../upload/'.$dirname;
26.//原图路径
27.$xin=$dirname.'/s';//PHP生成缩略图路径
28.if(!file_exists($xin)){
29.@mkdir($xin);
30.}
31.$image1=$info['filename'].'120_120'.'.' .$info['extension'];//缩略图名称
32.$image2=$info['filename'].'300_300'.'.' .$info['extension'];//缩略图名称
33.list($imagw,$imagh)=getimagesize($file ['tmp_name']);//取得原图的宽高(另外$file ['tmp_name']只是一个临时文件路径,有时可能 会报错,如报错只需把临时文件路径改成你上传 后的原图的路径即可)
34.//120图判断各种情况来取得缩略图的宽高
35.if($imagw< =120&&$imagh< =120){
36.$m120w=$imagw;
37.$m120h=$imagh;
38.}elseif($imagw>$imagh)
39.{
40.$m120w=120;
41.$m120h=intval($m120w/number_format( $imagw/$imagh,2));//缩略图的宽除以(原 图的宽除以原图的高)number_format查手册
42.}
43.else
44.{
45.$m120h=300;
46.$m120w=intval($m120h/number_format( $imagh/$imagw,2));//缩略图的高除以(原图 的高除以原图的宽)number_format查手册
47.}
48.//300图判断各种情况来取得缩略图的宽高
49.if($imagw< =300&&$imagh< =300){
50.$m300w=$imagw;
51.$m300h=$imagh;
52.}elseif($imagw>$imagh){
53.$m300w=300;
54.$m300h=intval($m300w/number_format( $imagw/$imagh,2));//缩略图的宽除以(原 图的宽除以原图的高)number_format查手册
55.}else{
56.$m300h=300;
57.$m300w=intval($m300h/number_format( $imagh/$imagw,2));//缩略图的高除以(原 图的高除以原图的宽)number_format查手册
58.}
59.if($info['extension']=='jpg'){
60.$info['extension']='jpeg';//判断图像类 型如果是JPG的则把它转换成JPEG的因为图像处 理函数在处理JPG的时候都是用的JPEG而不是JPG
61.}
62.$iml='imagecreatefrom'.$info['extension'];
63.//取得不同图片格式的不同函数
64.$yuan=$iml($file['tmp_name']);
65.//根据前面取的不同函数来取的原图的标识
66.$mu1=imagecreatetruecolor($m120w,$m120h);
67.//取的要生成的缩略图的标识
68.$mu2=imagecreatetruecolor($m300w,$m300h);
69.//取的要生成的缩略图的标识
70.$c='image'.$info['extension'];
71.//生成输出缩略图的函数,不能分开写,否则报错
72.imagecopyresampled($mu1,$yuan,0,0,0, 0,$m120w,$m120h,$imagw,$imagh);//生成缩略图120
73.$res=$c($mu1,$xin.'/'.$image1);
74.//存放缩略图
75.if(!$res){
76.alert('生成120缩略图失败');
77.exit;
78.}
79.imagecopyresampled($mu2,$yuan,0,0 ,0,0,$m300w,$m300h,$imagw,$imagh);
80.//PHP生成缩略图生成缩略图120
81.$res=$c($mu2,$xin.'/'.$image2);
82.//存放缩略图
83.if($res){
84.alert('生成300缩略图成功');
85.exit;
86.}
87.}
88.}
89.$tpl->display("tu/tu.html");
90.?> 详细原文地址:http://www.phpnewer.com/index.php/Ymgx/detail/id/38