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批量删除、清除UTF-8文件BOM头的代码实例
Apr 14 PHP
php实现的日历程序
Jun 18 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
php metaphone()函数的定义和用法
May 15 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
php base64 编码与解码实例代码
Mar 21 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 PHP
Laravel框架源码解析之入口文件原理分析
May 14 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
索尼ICF-SW100收音机评测
2021/03/02 无线电
php判断用户是否手机访问代码
2015/06/08 PHP
两种php实现图片上传的方法
2016/01/22 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
Python中pygame安装方法图文详解
2015/11/11 Python
利用python求相邻数的方法示例
2017/08/18 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
最新英语专业学生求职信范文
2013/09/21 职场文书
给导游的表扬信
2014/01/10 职场文书
消防安全员岗位职责
2014/03/10 职场文书
暑期教师培训方案
2014/06/07 职场文书
2015年植树节活动总结
2015/02/06 职场文书
大国崛起观后感
2015/06/02 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书