php上传图片生成缩略图(GD库)


Posted in PHP onJanuary 06, 2016

首先来一段简单的php上传图片生成缩略图的详细代码,分享给大家供大家参考,具体内容如下

<?php
function createThumbnail($imageDirectory, $imageName, $thumbDirectory, $thumbWidth, $quality){
$details = getimagesize("$imageDirectory/$imageName") or die('Please only upload images.');
$type = preg_replace('@^.+(?<=/)(.+)$@', '$1', $details['mime']);
eval('$srcImg = imagecreatefrom'.$type.'("$imageDirectory/$imageName");');
$thumbHeight = $details[1] * ($thumbWidth / $details[0]);
$thumbImg = imagecreatetruecolor($thumbWidth, $thumbHeight);
imagecopyresampled($thumbImg, $srcImg, 0, 0, 0, 0, $thumbWidth, $thumbHeight,
$details[0], $details[1]);
eval('image'.$type.'($thumbImg, "$thumbDirectory/$imageName"'.
(($type=='jpeg')?', $quality':'').');');
imagedestroy($srcImg);
imagedestroy($thumbImg);
}
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
createThumbnail("/location/of/main/image", $name, "/location/to/store/thumb", 120, 80);
//120 = thumb width :: 80 = thumb quality (1-100)
}
}
?>

接下来再为大家推荐一个实例php使用GD库上传图片以及创建缩略图,直接看代码:

GD库是PHP进行图象操作一个很强大的库。

先在php.ini里增加一行引用:extension=php_gd2.dll

重启apache,做一个测试页var_dump(gd_info());输出数据表明GD库引用成功。

图片上传页面 upload.html

<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>图片上传</title>
</head>
<body>
<h1>文件上传(只允许上传jpg类型图片)</h1>
<form enctype="multipart/form-data" action="upload_img.php" method="post">
 <input name="upfile" type="file"><br><br>
 <input type="submit" value="提交">
</form>
</body>
</html>

处理页面upload_img.php

<?php
 //上传图片保存地址
 $uploadfile = "upfiles/".$_FILES['upfile']['name'];
 //缩略图保存地址
 $smallfile = "upfiles/small_".$_FILES['upfile']['name'];


 if($_FILES['upfile']['type'] != "image/jpeg")
 {
  echo '文件类型错误';
 }
 else
 {
  move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile); //上传文件

  $dstW=200;//缩略图宽
  $dstH=200;//缩略图高

  $src_image=ImageCreateFromJPEG($uploadfile);
  $srcW=ImageSX($src_image); //获得图片宽
  $srcH=ImageSY($src_image); //获得图片高

  $dst_image=ImageCreateTrueColor($dstW,$dstH);
  ImageCopyResized($dst_image,$src_image,0,0,0,0,$dstW,$dstH,$srcW,$srcH);
  ImageJpeg($dst_image,$smallfile);

  echo '文件上传成功<br>';
  echo "<img src='$smallfile' />";
 }
?>

希望对大家学习php程序设计有所帮助,谢谢大家的支持。

PHP 相关文章推荐
Ajax PHP分页演示
Jan 02 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
PHP 翻页 实例代码
Aug 07 PHP
深入理解PHP之require/include顺序 推荐
Jan 02 PHP
如何判断php数组的维度
Jun 10 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
php递归创建目录的方法
Feb 02 PHP
摘自织梦CMS的HTTP文件下载类
Aug 08 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
joomla数据库操作示例代码
Jan 06 #PHP
Yii清理缓存的方法
Jan 06 #PHP
yii实现model添加默认值的方法(2种方法)
Jan 06 #PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 #PHP
基于PHP技术开发客服工单系统
Jan 06 #PHP
分享php邮件管理器源码
Jan 06 #PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 #PHP
You might like
PHP实现可自定义样式的分页类
2016/03/29 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
node.js开机自启动脚本文件
2014/12/24 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
Python中的Numpy矩阵操作
2018/08/12 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
python实现字符串和数字拼接
2020/03/02 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
python怎么调用自己的函数
2020/07/01 Python
基于CSS3实现的漂亮Menu菜单效果代码
2015/09/10 HTML / CSS
制冷与电控专业应届生求职信
2013/11/11 职场文书
毕业生的自我评价
2013/12/30 职场文书
医学院校毕业生自荐信范文
2014/01/01 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
交通事故检查书范文
2014/01/30 职场文书
学生会竞聘书范文
2014/03/31 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
建筑工地宣传标语
2014/06/18 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
个人主要事迹材料
2014/08/26 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
灵山大佛导游词
2015/02/04 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
小学英语教学反思范文
2016/02/15 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
股权投资协议书
2016/03/23 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS