PHP入门教程之图像处理技巧分析


Posted in PHP onSeptember 11, 2016

本文实例讲述了PHP图像处理。分享给大家供大家参考,具体如下:

Demo1.php

<?php
  //一般生成的图像可以是 png,jpg,gif,bmp
  //jpeg,wbmp
  //第一步,设置文件MIME类型,输出类型 text/html 类型是网页类型,默认可以不写
  //将输出类型改成图像流
  header('Content-Type:image/png;');
  //第二步,创建一个图形区域,图像背景
  //有两种创建方式,资源类型,一般要加上 @ 符号,防止出错
  //imagecreatetruecolor 返回的是一个资源句柄
  //这个函数创建了一个图像的区域,没有进行填充的时候,背景默认是黑色的
  $im = imagecreatetruecolor(200,200);
  //第三步,有空白图像区域,绘制颜色,文字叫,线条啊。。。
  //填充色换掉,首先要有个颜色填充器
  //imagecolorallocate -- 为一幅图像分配颜色
  $blue = imagecolorallocate($im,0,102,255);
  //将这个 blue 颜色填充到背景上去
  //imagefill -- 区域填充
  imagefill($im,0,0,$blue);
  //第四部,在蓝色的背景上输入一些线条,文字等
  $white = imagecolorallocate($im,255,255,255);
  //imageline -- 画一条线段
  imageline($im,0,0,200,200,$white);
  imageline($im,200,0,0,200,$white);
  //imagestring -- 水平地画一行字符串
  imagestring($im,5,80,20,'Mr.One',$white);
  //第五步,输出最终图形
  //以 PNG 格式将图像输出到浏览器或文件
  imagepng($im);
  //第六步,我要将所有的资源全部清空
  imagedestroy($im);
?>

Demo2.php

<?php
  //src 可以插入各样类型的图片
  //Demo1.php 其实就是一张 png 图片
  header('Content-Type:text/html; charset=gbk');
  echo '<img src="Demo1.php" alt="图形"/>';
?>

Demo3.php

<?php
  //简单的验证码
  //随机数
  //为什么要循环 0-15 之间的数呢?
  //因为要实现最简单的字母和数字混搭
  //十六进制 0-9 a-f
  //dechex -- 十进制转换为十六进制
  //创建一个四位的验证码
  for($i=0;$i<4;$i++){
    $nmsg .= dechex(mt_rand(0,15));
  }
  //echo $nmsg;
  header('Content-Type:image/png;');
  $im = imagecreatetruecolor(75,25);
  $blue = imagecolorallocate($im,0,102,255);
  $white = imagecolorallocate($im,255,255,255);
  imagefill($im,0,0,$blue);
  imagestring($im,5,20,5,$nmsg,$white);
  imagepng($im);
  imagedestroy($im);
?>

Demo4.php

<?php
  define('__DIR__',dirname(__FILE__).'\\');
  //加载已有的图像
  header('Content-Type:image/png;');
  //header('Content-Type:image/jpeg;');
  //imagecreatefrompng -- 从 PNG 文件或 URL 新建一图像
  //用 image 载入图像,是可以编辑图像
  //在载入的图像中,加入一个小水印
  $im = imagecreatefrompng(__DIR__.'ss.png');
  //$im = imagecreatefromjpeg('xx.jpg');
  $white = imagecolorallocate($im,255,255,255);
  imagestring($im,5,10,10,'http://www.oneStopWeb.cn',$white);
  imagepng($im);
  //imagejpeg($im);
  imagedestroy($im);
?>

Demo5.php

<?php
  define('__DIR__',dirname(__FILE__).'\\');
  //加载已有的图像
  header('Content-Type:image/png;');
  //header('Content-Type:image/jpeg;');
  //imagecreatefrompng -- 从 PNG 文件或 URL 新建一图像
  //用 image 载入图像,是可以编辑图像
  //在载入的图像中,加入一个小水印
  $im = imagecreatefrompng(__DIR__.'ss.png');
  //$im = imagecreatefromjpeg('xx.jpg');
  $white = imagecolorallocate($im,255,255,255);
  imagestring($im,5,10,10,'http://www.oneStopWeb.cn',$white);
  //font 字体还必须支持中文
  $font = 'C:\WINDOWS\Fonts\SIMHEI.TTF';
  //字体文件
  $text = iconv('gbk','utf-8','阅谁问君诵');
  //采用系统提供的字体
  //第二参数,是字体的大小,第三个参数是旋转角度,4,5参数是坐标
  imagettftext($im,20,10,50,100,$white,$font,$text);
  imagepng($im);
  //imagejpeg($im);
  imagedestroy($im);
?>

Demo6.php

<?php
  //微缩图,不但表面的大小改变了,容量也改变了
  //是真的改变了,不是表面的缩小
  define('__DIR__',dirname(__FILE__).'\\');
  header('Content-Type:image/png;');
  //getimagesize -- 取得图像大小
  //获取到了原图的长度和高度
  list($width,$height) = getimagesize(__DIR__.'ss.png');
  //将原图缩放成 40%
  $_width = $width * 0.4;
  $_height = $height * 0.4;
  //创建一个新图
  $im = imagecreatetruecolor($_width,$_height);
  //下面的工作是,载入原图,将原图复制到新图上去
  //载入原图
  $_im = imagecreatefrompng(__DIR__.'ss.png');
  //将原图重新采样,拷贝到新图上,最后按 0.4 的比例输出
  //imagecopyresampled -- 重采样拷贝部分图像并调整大小
  imagecopyresampled($im,$_im,0,0,0,0,$_width,$_height,$width,$height);
  //将新图输出
  imagepng($im);
  //第二个参数不需要,直接 null 过度
  //第三个参数,是 0-100 来调节 JPG 的清晰度
  //如果是 imagepng,那么全部都是高清
  //imagejpeg($im,null,50);
  //销毁
  imagedestroy($im);
  imagedestroy($_im);
?>

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

PHP 相关文章推荐
example1.php
Oct 09 PHP
别人整理的服务器变量:$_SERVER
Oct 20 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
帝国cms常用标签汇总
Jul 06 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
php简单备份与还原MySql的方法
May 09 PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 PHP
PHP函数引用返回的实例详解
Sep 11 #PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 #PHP
详解PHP中array_rand函数的使用方法
Sep 11 #PHP
PHP入门教程之上传文件实例详解
Sep 11 #PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 #PHP
PHP入门教程之表单与验证实例详解
Sep 11 #PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 #PHP
You might like
Php header()函数语法及使用代码
2013/11/04 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
js实现随机点名小功能
2017/08/17 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
详解Python发送email的三种方式
2018/10/18 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书