php怎么生成缩略图,php怎么生成缩略图
php生成缩略图的方法:首先根据上传的文件类型调用函数;然后新建一个真彩色图像;接着重采样拷贝部分图像并调整大小;最后通过“imagecopyresampled()”方法将图像中的一块正方形区域拷贝到另一个图像中即可。
php怎么生成缩略图?
代码示例:<?php
/**
* 生成缩略图函数(支持图片格式:gif、jpeg、png和bmp)
* @author ruxing.li
* @param string $src 源图片路径
* @param int $width 缩略图宽度(只指定高度时进行等比缩放)
* @param int $width 缩略图高度(只指定宽度时进行等比缩放)
* @param string $filename 保存路径(不指定时直接输出到浏览器)
* @return bool
*/
function mkThumbnail($src, $width = null, $height = null, $filename = null) {
if (!isset($width) && !isset($height))
return false;
if (isset($width) && $width <= 0)
return false;
if (isset($height) && $height <= 0)
return false;
$size = getimagesize($src);
//返回图片文件的信息
//Array
//(
// [0] => 3264
// [1] => 2448
// [2] => 2
// [3] => width="3264" height="2448"
// [bits] => 8
// [channels] => 3
// [mime] => image/jpeg
//)
if (!$size)
return false;
list($src_w, $src_h, $src_type) = $size;
$src_mime = $size['mime'];
switch ($src_type) {
case 1 :
$img_type = 'gif';
break;
case 2 :
$img_type = 'jpeg';
break;
case 3 :
$img_type = 'png';
break;
case 15 :
$img_type = 'wbmp';
break;
default :
return false;
}
//等比例缩放
if (!isset($width))
$width = $src_w * ($height / $src_h);
if (!isset($height))
$height = $src_h * ($width / $src_w);
//根据上传的文件的类型来调用不同函数
$imagecreatefunc = 'imagecreatefrom' . $img_type;
$src_img = $imagecreatefunc($src);
//新建一个真彩色图像
$dest_img = imagecreatetruecolor($width, $height);
//重采样拷贝部分图像并调整大小
/**
imagecopyresampled() 将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,
因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。
如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。
本函数可用来在同一幅图内部拷贝(如果 dst_image 和 src_image 相同的话)区域,但如果区域交迭的话则结果不可预知。
*/
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $width, $height, $src_w, $src_h);
$imagefunc = 'image' . $img_type;
if ($filename) {
$imagefunc($dest_img, $filename);
} else {
header('Content-Type: ' . $src_mime);
$imagefunc($dest_img);
}
//销毁文件资源
imagedestroy($src_img);
imagedestroy($dest_img);
return true;
}
$result = mkThumbnail('./demo.JPG', 147, 147, './thumbnail.jpg');
更多相关技术文章,请访问PHP中文网!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php怎么生成缩略图,php怎么生成缩略图相关推荐
- php生成网页缩略图接口,php生成网站缩略图
我要明确的回答使用php生成网站缩略图是不可能完成的任务. 那为什么我标题还要用"php生成网站缩略图",那是因为我们可以用php作为接口,通过页面传入参数来调用后台生成网页的缩略 ...
- php显示图片缩略图,使用ThinkPHP生成缩略图及显示的方法
这篇文章主要为大家详细介绍了使用ThinkPHP生成缩略图及显示的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 使用ThinkPHP生成缩略图及显示,具有一定的参考价值,感兴趣的小伙伴们 ...
- java将图片转成缩略图,将图片生成缩略图Java代码实现
在工作中经常会遇到图片处理相关的需求,比如说一些图片网站只展示相关的缩略图,而真实的图片可能很大而不是直接展示.所以就需要在上传相关的图片后直接对图片进行处理生成相关的缩略图.实现代码如下: impo ...
- java生成小图片_JAVA生成缩略小图片类
JAVA生成缩略小图片类 java.awt.image.BufferedImage是缓冲图片类主要将生成的图片对象缓冲起来:javax.imageio.ImageIO是图片IO控制类,可以将缓冲图片对 ...
- java centos 缩略图_Nginx国人开发缩略图模块(ngx_image_thumb)
关于 ngx_image_thumb是nginx中用来生成缩略图的模块,生存缩略图的方法很多,之前也写过一篇 <nginx生成缩略图配置 - ttlsa教程系列之nginx>,在githu ...
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图. 实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程 ...
- 用ASP.NET上传图片并生成带版权信息的缩略图
作者:活靶子 出处:AspxBoy.Com <%@ Page Language="C#" ResponseEncoding="gb2312" ...
- 使用c#生成高品质小空间的缩略图
dot自带的生成缩略图的方法是Bitmap.GetThumbnailImage这个方法生成的缩略图不够清晰,一般我们会使用Graphics高质量插值发生成清晰的缩略图,这时候大小会不尽人意,怎么办?我 ...
- python生成订单号或生成任意序列
python生成订单号或生成任意序列 示例代码: import time# 生成订单号 def get_order_code():# 年月日时分秒+time.time()的后7位order_no = ...
- python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表、生成浮点数列表(指定是否包含末尾值)
python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表.生成浮点数列表(指定是否包含末尾值) 目录
最新文章
- spyder上怎样将figure框出来_怎样将数据中心现有的物理机和虚拟机平滑的迁移到云平台上?...
- 有哪些大数据处理工具?
- 函数创建对象(2)原型模式
- 数据科学竞赛-房价预测
- C 语言 int 型乘法溢出问题
- 如何在Java地毯下有效地清除问题
- 前端学习(2605):增加响应头和option的关系
- 大道至简: 拉新、促活和留存
- js exec方法详解
- 社工大师_社工,与弱势者同行 | TED演讲
- Python+pyplot绘制带文本标注的柱状图
- Linux下cat 命令
- 配置Nginx不同域名访问不同项目
- 三菱系统数据采集程序发布安装指引
- autoCAD编辑图案填充
- Chrome 及驱动各版本下载地址
- 手把手教你开发 MyBatis 插件
- ftp服务器端口修改,FTP端口:默认为21端口
- 安装CARLA Simulator错误 安装失败 0x80070005 - 访问被拒绝 Error Setup Failed 0x80070005 - Access is denied
- 属牛的女孩取名:优美文雅、声声入耳的女孩名字
热门文章
- WAP1.x协议栈浅析
- Wing IDE Pro 6 for Mac(Python开发工具)安装破解图文教程
- 计算机键盘盲打方法,【字母键盘练习方法指导】教你如何快速打字
- 我的Android进阶之旅------关于调用Webservice查询火车票时刻表的几个接口介绍
- Python单元测试报告框架PyTestReport
- 傅里叶变换的相关实验——matlab实现
- 在vs2013下利用vb.net简单使用WebService实例
- 10大亮点解读--极通EWEBS4.0
- java jco_JAVA通过JCo连接SAP
- 【2019最新最全版】Java基础入门视频