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 相关文章推荐
PHP源码之 ext/mysql扩展部分
Jul 17 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
PHPEXCEL 使用小记
Jan 06 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 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 批量删除 sql语句
2009/06/05 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
php制作动态随机验证码
2015/02/12 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
js正确获取元素样式详解
2009/08/07 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
Python编写屏幕截图程序方法
2015/02/18 Python
利用python循环创建多个文件的方法
2018/10/25 Python
python使用插值法画出平滑曲线
2018/12/15 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
python pillow模块使用方法详解
2019/08/30 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
医学专业毕业生推荐信
2013/11/14 职场文书
留学生如何写好自荐信
2013/12/27 职场文书
财务主管自我鉴定
2014/01/17 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
财务管理制度范本
2015/08/04 职场文书
图书借阅制度范本
2015/08/06 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
JS高级程序设计之class继承重点详解
2022/07/07 Javascript