直接输出代码_php代码:实时输出缩小的图像
写在最前面,为什么要用php代码来输出图像?直接引用图片不好吗?
用php代码来输出图像,可以实现以下功能:
1.针对不同情况动态显示图片。
针对不同用户、ip、浏览器语言、搜索引擎、访问设备来显示不同图像。
例如,百度蜘蛛来抓取时,显示防盗链图片,而google爬虫来抓取时,显示缩小的图片预览。
例如,通过手机浏览器访问时,php代码自动把图片缩小(无需额外另存小图)。
例如,访问相册时,在索引页面自动显示小图,点击放大查看时再显示大图(同样无需额外另存小图)。
2.用在上传图片时,自动另存一份小尺寸缩略图。
相比第1点,在上传时就已经另存小图,后期浏览时直接读取小图文件,占用系统资源少。
关键代码:
//$imgfile:图片路径+图片名字。
//$minx,$miny:缩小目标尺寸,缩小后的最大宽度和高度
//$outputfile:另存的路径+图片名字,留空则直接输出图像
function ImageOutput($imgfile,$minx,$miny,$outputfile=null){ //获取大图信息$imgarr=getimagesize($imgfile);$maxx=$imgarr[0];//宽$maxy=$imgarr[1];//长$maxt=$imgarr[2];//格式$maxm=$imgarr['mime'];//mime类型$filetype = image_type_to_extension($imgarr[2], false); //获取文件后缀 jpeg png gif//大图资源$imgCF = "imagecreatefrom{$filetype}";$maxim = $imgCF($imgfile);//缩放判断if(($minx/$maxx)>($miny/$maxy)){$scale=$miny/$maxy;}else{$scale=$minx/$maxx; }//对所求值进行取整$minx=floor($maxx*$scale);$miny=floor($maxy*$scale);//添加小图$minim=imagecreatetruecolor($minx,$miny);//缩放函数imagecopyresampled($minim,$maxim,0,0,0,0,$minx,$miny,$maxx,$maxy);//判断图片类型switch($maxt){case 1:$imgout="imagegif";$quality = 100;break;case 2:$imgout="imagejpeg";$quality = 100;break;case 3:$imgout="imagepng";$quality = 9;break;}if($outputfile){$imgout($minim,$outputfile,$quality); //输出实体文件}else{//小图输出header("content-type:{$maxm}");$imgout($minim,null,$quality);}//释放资源imagedestroy($maxim);imagedestroy($minim);
}
如何使用?
在 showing.php 中的代码:
if($_GET['img']){ImageOutput($_GET['img'],350,350,null);
}
在需要引用图片的页面,使用类似以下代码:
echo '<img src="./showimg.php?img=ABC.jpg"/>';
如果不想暴露真实图片路径,那还需要用一定的“烟雾弹”要掩盖,这就不展开了。
参考资料:
PHP实例----图片等比例缩放功能_PHP_wzqnls-CSDN博客blog.csdn.net
PHP浏览器中直接输出图片_PHP_江南极客-CSDN博客blog.csdn.net
直接输出代码_php代码:实时输出缩小的图像相关推荐
- php连接数据库代码_PHP代码连接各种数据库
php连接数据库代码 1)用PHP连接MySQL (1) Connecting with MySQL in PHP) <?php $host = "localhost"; $ ...
- php缩略图代码,php 缩略图实现函数代码_php
array getimagesize ( string $filename [, array &$imageinfo ] ) 取得图像大小 resource imagecreatetrueco ...
- 手机发布新闻php,自动发布新闻的php代码_php
新闻文件以文本文件.txt的格式存放在一个固定的目录下,新闻的发布可以自动完成. 该过程由两部分组成: 第一是新闻的显示,由shownews.php脚本实现,代码如下: 〈table border=& ...
- 12小时进制的时间输出的编辑代码
关于时间输出的编辑代码个人思考了很久,包括顺序,进位之类的,求完善和纠错 public class yunsuanfu {public static void main(String[] arg){d ...
- ML之Clustering之LPA:LPA算法主要思路、输出结果、代码实现等相关配图之详细攻略
ML之Clustering之LPA:LPA算法主要思路.输出结果.代码实现等相关配图之详细攻略 目录 LPA算法的主要思路 LPA算法的输出结果 LPA算法的代码实现 LPA算法的主要思路 更新-- ...
- Asp.net 2.0 中获取控件输出的Html代码 (转)
将Asp.net 控件的呈现html获取,在不少场合会用到,比如生成静态页时 以下代码选自 Asp.net 2.0 高级编程 转自:Asp.net 2.0 中获取控件输出的Html代码 public ...
- 在命令提示符输出c语言代码_您可以在Windows命令提示符中更改输出缓冲区的大小吗?...
在命令提示符输出c语言代码 If you are someone who loves using the Windows Command Prompt, you may have found your ...
- 微信php实例代码_php微信公众平台示例代码分析(二)
一.摘要 微信公众平台提供了一个简单的php示例代码,在做进一步开发之前,我们有必要将其详细了解一下. 二.获取代码 三.分析代码 完整代码如下: /** * wechat php test */ / ...
- php如何随机显示图片,php中随机显示图片的函数代码_php
/********************************************** * Filename : img.php * Author : freemouse http://www ...
最新文章
- C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
- 电脑磁盘空间不足怎么办_IT干货 丨 电脑C盘存储空间不足怎么办?
- python叫什么-python中文叫什么
- php windows图片路径问题,解决PHP在Windows IIS 上传的图片无法访问的问题
- linux memcached 运行,linux下查看Memcached运行状态
- 湘苗培优|值不值?效果告诉你
- 【248天】跃迁之路——程序员高效学习方法论探索系列(实验阶段06-2017.10.11)...
- 计算机生成兵力方法,计算机生成兵力平台体系结构技术研究
- [转载] 在java中,如何将方法作为参数传递
- 聚焦数据安全管理——安踏信息安全管理体系实践
- 计算机春季高考试题答案,最新春季高考历年真题-天津市春季高考计算机试卷...
- linux装流量宝,流量宝下载_流量宝官方APP手机最新版本下载安装 - 风云下载
- 三七互娱游戏测试面经
- Dolby与DTS杜比环绕与DTS环绕音响
- Javascript:简易天数计算器
- 7-7 阿泽的交友标准 (10 分)
- 解决华为安全键盘收回, 软键盘位置没收回的问题
- 644.奇怪的打印机(困难)
- B. Fridge Lockers
- 删除 Bonjour service服务
热门文章
- Android的联通性---USB主机模式(三)
- window 之命令行的cd
- 超级计算机和人比,和超级计算机相比,人类的大脑很弱吗
- pikachu安装以及安装时遇到的的问题——pikachu数据库链接不上config.inc.php 以及侧边栏访问没有反应,只有URL加了个#原因和解决办法
- 蒙昧的意思_蒙昧的意思
- php注释验证,注解验证 · ThinkPHP6.0完全开发手册 · 看云
- python实现表格分析与建模_python实现数据分析与建模
- QEventLoop的简单使用(二)
- Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version.
- 利用python脚本(re)抓取美空mm图片