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注入点构造代码
Jun 14 PHP
PHP 截取字符串专题集合
Aug 19 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
深入浅出php socket编程
May 13 PHP
ThinkPHP安装和设置
Jul 27 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
php短信接口代码
May 13 PHP
php封装的page分页类完整实例
Oct 18 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 PHP
微信小程序结合ThinkPHP5授权登陆后获取手机号
Nov 23 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操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
php 定界符格式引起的错误
2011/05/24 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
python实现文件名批量替换和内容替换
2014/03/20 Python
python之yield表达式学习
2014/09/02 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python科学计算之narray对象用法
2019/11/25 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
个人充满哲理的自我评价
2014/02/20 职场文书
保险经纪人求职信
2014/03/11 职场文书
2014年信访工作总结
2014/11/17 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
食品卫生管理制度
2015/08/06 职场文书
销售会议开幕词
2016/03/04 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python