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 CKEditor 上传图片实现代码
Nov 06 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
PHP多线程类及用法实例
Dec 03 PHP
php进程间通讯实例分析
Jul 11 PHP
php递归函数怎么用才有效
Feb 24 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 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
制作美丽的拉花
2021/03/03 冲泡冲煮
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
PHP实现的日历功能示例
2018/09/01 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python常见数据结构详解
2014/07/24 Python
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
django2.0扩展用户字段示例
2019/02/13 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python requests库的使用
2021/01/06 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
医生自荐信
2013/10/11 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
校三好学生主要事迹
2014/01/11 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
python库sklearn常用操作
2021/08/23 Python
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL