php动态生成缩略图并输出显示的方法
本文实例讲述了php动态生成缩略图并输出显示的方法。分享给大家供大家参考。具体如下:
调用方法:
<img src="thumbs.php?filename=photo.jpg&width=100&height=100">
此代码可以为大图片动态生成缩略图显示,图片在内存中生成,不在硬盘生成真实文件
thumbs.php文件如下:
<?php $filename= $_GET['filename']; $width = $_GET['width']; $height = $_GET['height']; $path="http://localhost/images/"; //finish in "/" // Content type header('Content-type: image/jpeg'); // Get new dimensions list($width_orig, $height_orig) = getimagesize($path.$filename); if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($path.$filename); imagecopyresampled($image_p,$image,0,0,0,0,$width,$height,$width_orig,$height_orig); // Output imagejpeg($image_p, null, 100); // Imagedestroy imagedestroy ($image_p); ?>
希望本文所述对大家的php程序设计有所帮助。
相关推荐
-
php 根据url自动生成缩略图并处理高并发问题
服务器生成缩略图的时机一般分为两种: 1.上传文件时生成 优点:上传时就已经生成需要的缩略图,读取时不需要再判断,减少cpu运算. 缺点:当缩略图尺寸变化时或新增尺寸时,需要重新生成所有的缩略图. 2.访问时生成 优点:1.当有用户访问时才需要生成,没有访问的不用生成,节省空间. 2.当修改缩略图尺寸时,只需要修改设置,无需重新生成所有缩略图. 缺点:当缩略图不存在需要生成时,高并发访问会非常耗服务器资源. 虽然访问时生成会有高并发问题,但其他优点都比第一种方法好,因此只要解决高并发问题就可以.
-
Thinkphp调用Image类生成缩略图的方法
本文实例讲述了Thinkphp调用Image类生成缩略图的方法.分享给大家供大家参考.具体分析如下: Thinkphp的Image类 在ThinkPHP/Extend/Library/ORG/Util/Image.class.php中. 调用方法如下: import("ORG.Util.Image"); $Img = new Image();//实例化图片类对象 $image_path = './图片路径'; //若当前php文件在Thinkphp的中APP_PATH路径中 //'./
-
php利用GD库生成缩略图示例
php利用GD库生成缩略图. 复制代码 代码如下: <form method="post" action="suo_do.php" enctype="multipart/form-data"> <input type="file" name="pic" /> <input type="submit" value="上传1" /> &
-
PHP实现原比例生成缩略图的方法
本文实例讲述了PHP实现原比例生成缩略图的方法.分享给大家供大家参考,具体如下: <?php $image = "jiequ.jpg"; // 原图 $imgstream = file_get_contents($image); $im = imagecreatefromstring($imgstream); $x = imagesx($im);//获取图片的宽 $y = imagesy($im);//获取图片的高 // 缩略后的大小 $xx = 140; $yy = 200;
-
PHP简单生成缩略图相册的方法
本文实例讲述了PHP简单生成缩略图相册的方法.分享给大家供大家参考.具体如下: <?php /* * written by mot * 根目录下自己新建image thumb目录 * */ class thumb{ private $src; private $source; private $s_width; private $s_height; private $dest; private $d_height; private $d_width; private $name; public
-
php实现根据url自动生成缩略图的方法
本文实例讲述了php实现根据url自动生成缩略图的方法,是非常实用的功能.分享给大家供大家参考.具体方法如下: 原理:设置apache rewrite ,当图片不存在时,调用php创建图片. 例如: 原图路径为:http://localhost/upload/news/2013/07/21/1.jpg 缩略图路径为:http://localhost/supload/news/2013/07/21/1.jpg 当访问 http://localhost/supload/news/2013/07/21
-
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
裁剪示例: 最终裁剪成的图片: 其中虚线框内就是要裁剪出来的图片,最终保存成100宽的图片.代码如下: 复制代码 代码如下: $src_path = '1.jpg';//创建源图的实例$src = imagecreatefromstring(file_get_contents($src_path)); //裁剪开区域左上角的点的坐标$x = 100;$y = 12;//裁剪区域的宽和高$width = 200;$height = 200;//最终保存成图片的宽和高,和源要等比例,否则会变形$fi
-
php实现上传图片生成缩略图示例
功能很简单,代码中有注释,直接给大家上代码了 复制代码 代码如下: <?php/** * 上传图片生成缩略图 * * 需要GD2库的支持 * * 初始化时需要参数new thumbnails('需要缩略的图片的原始地址','缩略图的宽度','缩略图的高度','(可选参数)缩略图的保存路径'); * 如果最后一个参数不指定,那么缩略图就默认保存在原始图片的所在目录里的small文件夹里, * 如果不存在small文件夹,则会自动创建small文件夹 * * 初始化之后需要调用方法produc
-
php上传图片生成缩略图(GD库)
首先来一段简单的php上传图片生成缩略图的详细代码,分享给大家供大家参考,具体内容如下 <?php function createThumbnail($imageDirectory, $imageName, $thumbDirectory, $thumbWidth, $quality){ $details = getimagesize("$imageDirectory/$imageName") or die('Please only upload images.'); $type
-
php可生成缩略图的文件上传类实例
本文实例讲述了php可生成缩略图的文件上传类及其用法.分享给大家供大家参考.具体实现方法如下: 类文件调用方法如下: 复制代码 代码如下: <?php if ($_GET['action'] == 'save') { $up = new upload(); $up->set_dir(dirname(__FILE__).'/upload/','{y}/{m}'); $up->set_thumb(100,
-
php使用timthumb生成缩略图的方法
本文实例讲述了php使用timthumb生成缩略图的方法.分享给大家供大家参考,具体如下: 生成缩列图有二种方式: 一.提前生成好,供调用 缩列图常规做法是,开始根据网站中的图片规格,要生成多少种缩列图,图片上传过程中就会生成缩列,供不同需求去调用.像这种方法有一点不好就是,如果增加图片规格以后,以前上传的图片没有该规格的,还要重新生成. 二.调用的时候在生成缩列图.这也是我写这篇文章原因. 推荐一个timthumb,个人觉得在不考虑性能,效率的情况下,这个东西,绝对是好用的. 1,下载地址:h
随机推荐
- Angular2中如何使用ngx-translate进行国际化
- PHP获取指定日期是星期几的实现方法
- DB2 UDB V8.1管理学习笔记(三)
- AngularJS使用ngOption实现下拉列表的实例代码
- vue做网页开场视频的实例代码
- Javascript-Mozilla和IE中的一个函数直接量的问题分析
- 详解使用C#编写SqlHelper类
- 如何通过vs2017的Dockerfile来生成镜像
- 浅谈JavaScript中Date(日期对象),Math对象
- php实现的错误处理封装类实例
- Yii2中DropDownList简单用法示例
- linux shell 脚本实现tcp/upd协议通讯(重定向应用)
- Flex 加载Base64编码的二进制字符串图片
- 红客必学:Windows下的权限设置详解
- Win2000/XP下的SFC使用参数
- C++ 将文件数据一次性加载进内存实例代码
- C#接口在派生类和外部类中的调用方法示例
- 详解C#如何读写config配置文件
- laravel5.3 vue 实现收藏夹功能实例详解
- 用vbs脚本获取网卡MAC,CPUID,硬盘序列号的实现代码