PHP实现浏览器中直接输出图片的方法示例


Posted in PHP onMarch 14, 2018

本文实例讲述了PHP实现浏览器中直接输出图片的方法。分享给大家供大家参考,具体如下:

在浏览器中输出图片,最简单的方法当然是使用HTML的img标签,直接传入图片路径或者链接。但有时候我们需要把图片做一些处理,比如改一下图片质量或者尺寸再显示出来,我们可以使用PHP内置的图片处理函数imagecreatefromjpeg(或imagecreatefrompng)由文件或 URL 创建一个新图象和imagejpeg(或imagepng),通过 header() 发送 Content-type: image/jpeg 可以使 PHP 脚本直接输出 JPEG 图像。

/*
 * php 页面直接输出图片
 */
function showImg($img){
  $info = getimagesize($img);
  $imgExt = image_type_to_extension($info[2], false); //获取文件后缀
  $fun = "imagecreatefrom{$imgExt}";
  $imgInfo = $fun($img);         //1.由文件或 URL 创建一个新图象。如:imagecreatefrompng ( string $filename )
  //$mime = $info['mime'];
  $mime = image_type_to_mime_type(exif_imagetype($img)); //获取图片的 MIME 类型
  header('Content-Type:'.$mime);
  $quality = 100;
  if($imgExt == 'png') $quality = 9;   //输出质量,JPEG格式(0-100),PNG格式(0-9)
  $getImgInfo = "image{$imgExt}";
  $getImgInfo($imgInfo, null, $quality); //2.将图像输出到浏览器或文件。如: imagepng ( resource $image )
  imagedestroy($imgInfo);
}

可以读取本地图片文件,也可以读取远程图片链接。

注:imagejpeg(或imagepng)支持仅在PHP与GD-1.8或更高版本一起编译时可用。quality为可选项,jpeg范围从0(最差质量,文件更小)到100(最佳质量,文件最大),png范围从 0到9。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 中的一些经验积累
Oct 09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
php的memcached客户端memcached
Jun 14 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
php实现的日历程序
Jun 18 PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 PHP
PHP根据key删除数组中指定的元素
Feb 28 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 PHP
PHP实现生成推广海报的方法详解
Mar 14 #PHP
PHP基于phpqrcode类生成二维码的方法详解
Mar 14 #PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 #PHP
Laravel模型事件的实现原理详解
Mar 14 #PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 #PHP
Laravel多用户认证系统示例详解
Mar 13 #PHP
PHP简单实现防止SQL注入的方法
Mar 13 #PHP
You might like
PHP的几个常用数字判断函数代码
2012/04/24 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
event.X和event.clientX的区别分析
2011/10/06 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
用实例分析Python中method的参数传递过程
2015/04/02 Python
使用Python写CUDA程序的方法
2017/03/27 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
python模拟实现斗地主发牌
2020/01/07 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
工程造价与管理专业应届生求职信
2013/11/23 职场文书
爱岗敬业演讲稿范文
2014/01/14 职场文书
无传销社区工作方案
2014/05/13 职场文书
中文专业求职信
2014/06/20 职场文书
公司备用金管理制度
2015/08/04 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
python可视化大屏库big_screen示例详解
2021/11/23 Python