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 相关文章推荐
vBulletin Forum 2.3.xx SQL Injection
Oct 09 PHP
用PHP实现的随机广告显示代码
Jun 14 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
LotusPhp笔记之:Cookie组件的使用详解
May 06 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
php输入流php://input使用浅析
Sep 02 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
PHP扩展mcrypt实现的AES加密功能示例
Jan 29 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中长文章分页显示实现代码
2012/09/29 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
Javascript的&amp;&amp;和||的另类用法
2014/07/23 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
python学生信息管理系统
2018/03/13 Python
浅谈Python中的bs4基础
2018/10/21 Python
python用插值法绘制平滑曲线
2021/02/19 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
大学生个人求职信范文
2013/09/21 职场文书
运动会通讯稿400字
2014/01/28 职场文书
亲子拓展活动方案
2014/02/20 职场文书
考博专家推荐信
2014/05/10 职场文书
项目经理任命书内容
2014/06/06 职场文书
使用javascript解析二维码的三种方式
2021/11/11 Javascript