首页 / PHP / php生成图片缩略图的函数_PHP教程
php生成图片缩略图的函数_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php生成图片缩略图的函数_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3534字,纯文字阅读大概需要6分钟。
内容图文
![php生成图片缩略图的函数_PHP教程](/upload/InfoBanner/zyjiaocheng/183/7aa2daac981a47ccaaea01a9c6810783.jpg)
$a=thumbImage('1.jpg',200,100,'2.jpg');//将1.jpg生成宽为200,高为100的缩略图,并保存为2.jpg print_r($a);
打印结果:
Array(
[status] => 0
[file] => 1.jpg
[width] => 200
[height] => 200
[savePath] => 2.jpg
[info] => 缩略图片生成成功
)
$a=thumbImage('1.jpg',200,100);//将1.jpg生成宽为200,高为100的缩略图,并直接覆盖1.jpg,不生成新图片
函数代码如下:
<?php /* *php生成图片缩略图的函数 *www.phpernote.com */ function thumbImage($file,$thumbWidth,$thumbHeight,$savePath='',$isCut=true,$quality=100){ $result=array('status'=>0,'file'=>'','width'=>0,'height'=>0,'savePath'=>'','info'=>''); if(!file_exists($file)){ return array('status'=>1,'file'=>'','width'=>0,'height'=>0,'savePath'=>'','info'=>'图片文件不存在'); } //检测文件类型 $fp=fopen($file,'rb'); $str=fread($fp,2); //只读2字节 fclose($fp); $str=@unpack("c2chars",$str); $typeCode=intval($str['chars1'].$str['chars2']); $fileType=''; switch($typeCode){ case 255216: $fileType='jpg'; break; case 7173: $fileType='gif'; break; case 6677: $fileType='bmp'; break; case 13780: $fileType='png'; break; default: $fileType=$typeCode; break; } if($str['chars1']=='-1'&&$str['chars2']=='-40'){ $fileType='jpg'; } if($str['chars1']=='-119'&&$str['chars2']=='80'){ $fileType='png'; } if(!in_array($fileType,array('jpg','gif','bmp','png'))){ return array('status'=>2,'file'=>'','width'=>0,'height'=>0,'savePath'=>'','info'=>'图片文件类型不正确:'.$fileType); } //图片缩放处理 if($fileType=='jpg'){ $im=imagecreatefromjpeg($file); } if($fileType=='gif'){ $im=imagecreatefromgif($file); } if($fileType=='png'){ $im=imagecreatefrompng($file); } if(empty($savePath)) $savePath=$file; $width=imagesx($im); $height=imagesy($im); if($width<$thumbWidth&&$height<$thumbHeight){ return array('status'=>3,'file'=>'','width'=>0,'height'=>0,'savePath'=>'','info'=>'图片尺寸小于生成缩略图的尺寸'); } $ratio=$width/$height;//实际图象的比例 $thumbRatio=$thumbWidth/$thumbHeight;//改变后的图象的比例 if($isCut){//裁切处理 if(function_exists('imagepng')&&(str_replace('.','',PHP_VERSION)>=512)){//针对php版本大于5.12参数变化后的处理情况 $quality=9; } if($ratio>=$thumbRatio){//高度优先 $newimg=imagecreatetruecolor($thumbWidth,$thumbHeight); imagecopyresampled($newimg,$im,0,0,0,0,$thumbWidth,$thumbHeight,(($height)*$thumbRatio),$height); imagejpeg($newimg,$savePath,$quality); } if($ratio<$thumbRatio){//宽度优先 $newimg=imagecreatetruecolor($thumbWidth,$thumbHeight); imagecopyresampled($newimg,$im,0,0,0,0,$thumbWidth,$thumbHeight,$width,(($width)/$thumbRatio)); imagejpeg($newimg,$savePath,$quality); } }else{//不裁切处理 if($ratio>=$thumbRatio){ $newimg=imagecreatetruecolor($thumbWidth,($thumbWidth)/$ratio); imagecopyresampled($newimg,$im,0,0,0,0,$thumbWidth,($thumbWidth)/$ratio,$width,$height); imagejpeg($newimg,$savePath,$quality); } if($ratio<$thumbRatio){ $newimg=imagecreatetruecolor(($thumbHeight)*$ratio,$thumbHeight); imagecopyresampled($newimg,$im,0,0,0,0,($thumbHeight)*$ratio,$thumbHeight,$width,$height); imagejpeg($newimg,$savePath,$quality); } } ImageDestroy($im);//www.phpernote.com/php-function/1007.html return array('status'=>0,'file'=>$file,'width'=>$thumbWidth,'height'=>$thumbHeight,'savePath'=>$savePath,'info'=>'缩略图片生成成功'); }
您可能感兴趣的文章
- php生成图片缩略图的类方法
- PHP 生成连续的数字(字母)数组函数range()分析,PHP抽奖程序函数
- PHP生成随机密码函数
- php获取内容中的所有图片列表并输出的方法
- php提取身份证号码中的生日日期以及验证是否为未成年人的函数
- php生成柱状图(统计图)程序
- php生成验证码函数
- php生成短网址的思路以及实现方法
http://www.bkjia.com/PHPjc/779412.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/779412.htmlTechArticle具体用法如下: $a=thumbImage('1.jpg',200,100,'2.jpg');//将1.jpg生成宽为200,高为100的缩略图,并保存为2.jpgprint_r($a); 打印结果: Array( [status] = 0 [...
内容总结
以上是互联网集市为您收集整理的php生成图片缩略图的函数_PHP教程全部内容,希望文章能够帮你解决php生成图片缩略图的函数_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。