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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
PHP与SQL注入攻击[一]
Apr 17 PHP
PHP教程 基本语法
Oct 23 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
Feb 03 PHP
laravel 5 实现模板主题功能(续)
Mar 02 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
Dec 07 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
常用PHP封装分页工具类
Jan 14 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 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
下载文件的点击数回填
2006/10/09 PHP
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
vue实现信息管理系统
2020/05/30 Javascript
python算法学习之计数排序实例
2013/12/18 Python
Python Property属性的2种用法
2015/06/21 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
C#笔试题集合
2013/06/21 面试题
初中生学习生活的自我评价
2013/11/20 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
代领报检证委托书范本
2014/10/11 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
公积金贷款承诺书
2015/04/30 职场文书
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js
什么是Python装饰器?如何定义和使用?
2022/04/11 Python