写在最前面,为什么要用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代码:实时输出缩小的图像相关推荐

  1. php连接数据库代码_PHP代码连接各种数据库

    php连接数据库代码 1)用PHP连接MySQL (1) Connecting with MySQL in PHP) <?php $host = "localhost"; $ ...

  2. php缩略图代码,php 缩略图实现函数代码_php

    array getimagesize ( string $filename [, array &$imageinfo ] ) 取得图像大小 resource imagecreatetrueco ...

  3. 手机发布新闻php,自动发布新闻的php代码_php

    新闻文件以文本文件.txt的格式存放在一个固定的目录下,新闻的发布可以自动完成. 该过程由两部分组成: 第一是新闻的显示,由shownews.php脚本实现,代码如下: 〈table border=& ...

  4. 12小时进制的时间输出的编辑代码

    关于时间输出的编辑代码个人思考了很久,包括顺序,进位之类的,求完善和纠错 public class yunsuanfu {public static void main(String[] arg){d ...

  5. ML之Clustering之LPA:LPA算法主要思路、输出结果、代码实现等相关配图之详细攻略

    ML之Clustering之LPA:LPA算法主要思路.输出结果.代码实现等相关配图之详细攻略 目录 LPA算法的主要思路 LPA算法的输出结果 LPA算法的代码实现 LPA算法的主要思路 更新-- ...

  6. Asp.net 2.0 中获取控件输出的Html代码 (转)

    将Asp.net 控件的呈现html获取,在不少场合会用到,比如生成静态页时 以下代码选自 Asp.net 2.0 高级编程 转自:Asp.net 2.0 中获取控件输出的Html代码 public  ...

  7. 在命令提示符输出c语言代码_您可以在Windows命令提示符中更改输出缓冲区的大小吗?...

    在命令提示符输出c语言代码 If you are someone who loves using the Windows Command Prompt, you may have found your ...

  8. 微信php实例代码_php微信公众平台示例代码分析(二)

    一.摘要 微信公众平台提供了一个简单的php示例代码,在做进一步开发之前,我们有必要将其详细了解一下. 二.获取代码 三.分析代码 完整代码如下: /** * wechat php test */ / ...

  9. php如何随机显示图片,php中随机显示图片的函数代码_php

    /********************************************** * Filename : img.php * Author : freemouse http://www ...

最新文章

  1. C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
  2. 电脑磁盘空间不足怎么办_IT干货 丨 电脑C盘存储空间不足怎么办?
  3. python叫什么-python中文叫什么
  4. php windows图片路径问题,解决PHP在Windows IIS 上传的图片无法访问的问题
  5. linux memcached 运行,linux下查看Memcached运行状态
  6. 湘苗培优|值不值?效果告诉你
  7. 【248天】跃迁之路——程序员高效学习方法论探索系列(实验阶段06-2017.10.11)...
  8. 计算机生成兵力方法,计算机生成兵力平台体系结构技术研究
  9. [转载] 在java中,如何将方法作为参数传递
  10. 聚焦数据安全管理——安踏信息安全管理体系实践
  11. 计算机春季高考试题答案,最新春季高考历年真题-天津市春季高考计算机试卷...
  12. linux装流量宝,流量宝下载_流量宝官方APP手机最新版本下载安装 - 风云下载
  13. 三七互娱游戏测试面经
  14. Dolby与DTS杜比环绕与DTS环绕音响
  15. Javascript:简易天数计算器
  16. 7-7 阿泽的交友标准 (10 分)
  17. 解决华为安全键盘收回, 软键盘位置没收回的问题
  18. 644.奇怪的打印机(困难)
  19. B. Fridge Lockers
  20. 删除 Bonjour service服务

热门文章

  1. Android的联通性---USB主机模式(三)
  2. window 之命令行的cd
  3. 超级计算机和人比,和超级计算机相比,人类的大脑很弱吗
  4. pikachu安装以及安装时遇到的的问题——pikachu数据库链接不上config.inc.php 以及侧边栏访问没有反应,只有URL加了个#原因和解决办法
  5. 蒙昧的意思_蒙昧的意思
  6. php注释验证,注解验证 · ThinkPHP6.0完全开发手册 · 看云
  7. python实现表格分析与建模_python实现数据分析与建模
  8. QEventLoop的简单使用(二)
  9. Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version.
  10. 利用python脚本(re)抓取美空mm图片