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 相关文章推荐
深入了解php4(1)--回到未来
Oct 09 PHP
PHP获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
PHP类的反射用法实例
Nov 03 PHP
PHP中文乱码解决方案
Mar 05 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
Aug 30 PHP
PHP类的自动加载机制实现方法分析
Jan 10 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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
Terran热键控制
2020/03/14 星际争霸
用mysql内存表来代替php session的类
2009/02/01 PHP
php中define用法实例
2015/07/30 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
js 单引号 传递方法
2009/06/22 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
JS获取select的value和text值的简单实例
2014/02/26 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
浅析Ajax语法
2016/12/05 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
js数组去重的方法总结
2019/01/18 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
python 实现IP子网计算
2021/02/18 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
《中彩那天》教学反思
2014/02/22 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
出差报告格式模板
2014/11/06 职场文书
雷锋之歌观后感
2015/06/10 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
建房合同协议书
2016/03/21 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL