php 生成缩略图$img = 'images/2.jpg';

createThumb($img, 500);

/**

* 生成缩略图

* @param $img 原图路径

* @param int $thumb_width 缩略图的宽度,默认200

* @param string $ext 缩略图的扩展名,默认和原图相同

* @return bool|string

*/

function createThumb($img, $thumb_width = 200, $ext = '')

{

//1.获取原图像的大小

$img_arr = getimagesize($img);

$img_width = $img_arr[0];

$img_height = $img_arr[1];

//获取原图像资源

$src = imagecreatefromAll($img);

//2.计算缩略图大小

//方式二:

//$thumb_width =200;

$thumb_height = $img_height * $thumb_width / $img_width;

//3.创建画布

//$thumb = imagecreate($thumb_width, $thumb_height);

$thumb = imagecreatetruecolor($thumb_width, $thumb_height);

//4.生成缩略图

imagecopyresized($thumb, $src, 0, 0, 0, 0, $thumb_width, $thumb_height, $img_width, $img_height);

//5.生成文件

$thumb_file = createImageAll($img, $thumb, $ext);

//只在浏览器中显示,不生成文件

//header('content-type:image/jpeg');

//imagepng($thumb);

imagedestroy($thumb);

imagedestroy($src);

return $thumb_file;

}

/**

* 获取图片资源

* @param $src  图片路径

* @return bool|resource

*/

function imageCreateFromAll($src)

{

$src_arr = getimagesize($src);

switch ($src_arr['mime']) {

case 'image/jpeg':

return imagecreatefromjpeg($src);

case 'image/png':

return imagecreatefrompng($src);

case 'image/gif':

return imagecreatefromgif($src);

case 'image/bmp':

return imagecreatefrombmp($src);

//        case 'image/wbmp':

//            return imagecreatefromwbmp($src);

//        case 'image/webp':

//            return imagecreatefromwebp($src);

//        case 'image/x-xbitmap':

//            return imagecreatefromxbm($src);

//        case 'image/x-xpixmap':

//            return imagecreatefromxpm($src);

default :

return false;

}

}

/**

* 生成图片

* @param $src  原图的路径

* @param $im   目标图的资源

* @param string $ext 生成图片的扩展名,默认是原图扩展名

* @param string $prefix 文件名前缀

* @param int $quality 生成jpg格式图片的质量

* @return bool|string

*/

function createImageAll($src, $im, $ext = '', $prefix = 'thumb_', $quality = 80)

{

$src_path = pathinfo($src);

//$ext 为空,和原图扩展名相同

if (empty($ext)) {

$ext = $src_path['extension'];

}

$new_file = $src_path['dirname'] . '/' . $prefix . $src_path['filename'] . '.' . $ext;

switch (strtolower($ext)) {

case 'jpg':

imagejpeg($im, $new_file, $quality);

return $new_file;

case 'png':

imagepng($im, $new_file);

return $new_file;

case 'gif';

imagegif($im, $new_file);

return $new_file;

default:

return false;

}

}

php的thumb生成缩略图,php 生成缩略图相关推荐

  1. 网站缩略图在线生成PHP源码

    介绍: 网站缩略图生成源码是一个强大实用的免费网站缩略图在线生成服务站,它能够在短短的几秒钟内,透过您所输入的网址请求,产生该网站或网页的缩图. 无需注册就可以使用,上传即可用,分享素材的必备源码! ...

  2. 用于图片切割,图片压缩,缩略图的生成(转到一个好东西)

    用于图片切割,图片压缩,缩略图的生成 imageCut#region imageCut     /**//// <summary>     /// 图片切割函数     /// </ ...

  3. php 生成等比例缩略图,php生成缩略图填充白边(等比缩略图方案)

    //源图的路径,可以是本地文件,也可以是远程图片 $src_path = '1.jpg'; //最终保存图片的宽 $width = 160; //最终保存图片的高 $height = 120; //源 ...

  4. 获取图片缩略图和视频缩略图

    获取图片缩略图和视频缩略图的方法: Java代码: [java] view plain copy print ? import java.io.File; import android.app.Act ...

  5. php随机缩略图,实现随机缩略图的简单思路和phpcms随机缩略图两种方法

    一种实现随机缩略图的简单思路:设置一个随机缩略图图片池(比如thumb文件夹),里面放若干张从"1.jpg"开始顺序命名的预置图片,判断无缩略图时,使用php的mt_rand(1, ...

  6. linux qt 生成word,Qt 生成word、pdf文檔

    需求:將軟件處理的結果保存為一個報告文檔,文檔中包含表格.圖片.文字,格式為word的.doc和.pdf.生成word是為了便於用戶編輯. 開發環境:qt4.8.4+vs2010 在qt的官網上對於p ...

  7. 如何生成java_如何生成JavaAPI doc

    1         准备工作 1.1    填写完整的注释 对需要生成API的类,填写完整的注释,包括类注释,方法注释,具体格式如下: 类注释: 原先可能author是作者,需要修改成author英文 ...

  8. 【PhotoScan精品教程】任务三:生成密集点云、生成网格、生成DEM、生成DOM

    <无人机航空摄影测量精品教程>合集目录(Pix4d.CC.EPS.PhotoScan.Inpho) [PhotoScan精品教程]任务一:新建工程.导入照片.设置坐标系.导入控制点(POS ...

  9. 用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码

    用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码.也就是说,程序集在打包时是连同CLR一起打包的.在客户端的机器上,CLR一行行的读取IL,在读取每行IL时,CLR利用JIT编译器将I ...

  10. 用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

    TableGo是基于数据库的代码自动生成工具,低代码编程技术的实现,可以零代码自动生成SpringBoot项目工程.生成JavaBean.生成前后端分离的CRUD代码.生成MyBaits的Mapper ...

最新文章

  1. PHP获取当前url路径的函数及服务器变量:QUERY_STRING、REQUEST_URI、SCRIPT...
  2. PCL【Win10+VS2015+PCL_1.8.0环境配置】
  3. Django 3.2.5博客开发教程:实现模板之前的分析与准备
  4. boost::hana::make_set用法的测试程序
  5. QT的QPlaceContent类的使用
  6. 接口隔离原则——面向对象设计原则
  7. YBTOJ洛谷P3750:分手是祝愿(期望dp)
  8. transformer xl在文本生成上面的应用
  9. Haproxy+keepalived高可用集群实战
  10. using – 再谈.Net Framework(C#/VB.Net)的资源释放
  11. 阿里巴巴Java开发文档2020版学习-命名风格
  12. 给仍在「 选品 」的跨境卖家提个醒!
  13. 家庭局域网_第二篇如何让电信IPTV与路由器同时上网(组建自己家庭局域网专题)...
  14. 程序猿怎样变身IT讲师
  15. java protected用法_深入理解Java的protected修饰符
  16. Android Ibeacon 算法,iBeacon定位算法
  17. arduino IED2.0实现Serial.println打印结果
  18. 零基础学摄影 || 人像摄影下相机参数设置
  19. 回头再说--赶紧说两句
  20. [系统安全] 虚拟化安全之虚拟化概述

热门文章

  1. 我们正处在大数据时代,浅谈大数据
  2. 非全日制计算机专业值得读吗,全日制、非全日制哪个更好?19计算机考研扫盲贴!...
  3. world2010 插入参考文献时有跳行的问题
  4. 有关人机聊天的一次聊天
  5. 手持两把锟斤拷,口中疾呼烫烫烫。脚踏千朵屯屯屯,笑看万物锘锘锘。
  6. CSDN写博客如何自动插入目录
  7. 高性能Javascript(1)
  8. 战斗系统之属性设计(一)
  9. html屏幕滚动事件监听,JQuery监听页面滚动事件
  10. 又一个!左手手机,右手汽车,为啥手机厂商都扎堆造汽车?