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+DBM的同学录程序(3)
Oct 09 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
PHP开发者常犯的10个MySQL错误更正剖析
Jan 30 PHP
Apache服务器无法使用的解决方法
May 08 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
跟我学Laravel之配置Laravel
Oct 15 PHP
php二维码生成
Oct 19 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 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
解析wamp5下虚拟机配置文档
2013/06/27 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
2017/02/23 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
TensorFlow平台下Python实现神经网络
2018/03/10 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
日本无添加化妆品:HABA
2016/08/18 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
网上开商店的创业计划书
2014/01/19 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
导游词之唐山景点
2019/12/18 职场文书
图解上海144收音机
2021/04/22 无线电
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
python前后端自定义分页器
2022/04/13 Python
MySQL添加索引特点及优化问题
2022/07/23 MySQL