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 相关文章推荐
杏林同学录(九)
Oct 09 PHP
[转帖]PHP世纪万年历
Dec 06 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
ThinkPHP php 框架学习笔记
Oct 30 PHP
PHP备份/还原MySQL数据库的代码
Jan 06 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
php异常处理技术,顶级异常处理器
Jun 13 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
掌握PHP垃圾回收机制详解
Mar 13 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 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获取url的函数代码
2011/08/02 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
use jscript with List Proxy Server Information
2007/06/11 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
bootstrap table实例详解
2017/01/06 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
Python实现全局变量的两个解决方法
2014/07/03 Python
Python实现在线程里运行scrapy的方法
2015/04/07 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
解决python运行启动报错问题
2020/06/01 Python
HTTP状态码详解
2021/03/18 杂记
中专毕业自我鉴定
2013/10/16 职场文书
《春晓》教学反思
2014/04/20 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
2014年底个人工作总结
2015/03/10 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书