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 相关文章推荐
example2.php
Oct 09 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
php下载文件的代码示例
Jun 29 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
PHP使用静态方法的几个注意事项
Sep 16 PHP
Thinkphp中的curd应用实用要点
Jan 04 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 PHP
46 个非常有用的 PHP 代码片段
Feb 16 PHP
php技巧小结【推荐】
Jan 19 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的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
php中apc缓存使用示例
2013/12/25 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
php实现文章评论系统
2019/02/18 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
js模拟类继承小例子
2010/07/17 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
js选择器全面解析
2016/06/27 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
详解Django中间件执行顺序
2018/07/16 Python
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
客户代表实习人员自我鉴定
2013/09/27 职场文书
运动会广播稿50字
2014/01/26 职场文书
学生检讨书范文
2014/10/30 职场文书
2014年手术室工作总结
2014/11/26 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
上班旷工检讨书
2015/08/15 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis