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 相关文章推荐
PHP4实际应用经验篇(2)
Oct 09 PHP
谷歌音乐搜索栏的提示功能php修正代码
May 09 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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
第十三节 对象串行化 [13]
2006/10/09 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
Vue中封装input组件的实例详解
2017/10/17 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
简单介绍Python中的JSON模块
2015/04/08 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
python交互模式基础知识点学习
2020/06/18 Python
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
南京南京观后感
2015/06/02 职场文书
班级班风口号大全
2015/12/25 职场文书
2016党校培训心得体会
2016/01/07 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
《我是什么》教学反思
2016/02/16 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server