PHP实现对图片的反色处理功能【测试可用】


Posted in PHP onFebruary 01, 2018

本文实例讲述了PHP实现对图片的反色处理功能。分享给大家供大家参考,具体如下:

今天有个需求用php对图片进行反色,和转灰,之前不知道可不可行,后来看到了imagefilter()函数,用来转灰绰绰有余,好强大;

imagefilter($im, IMG_FILTER_GRAYSCALE)

当然也有人在css里面设置变灰

<style type="text/css">
img {
-webkit-filter: grayscale(1);/* Webkit */
filter:gray;/* IE6-9 */
filter: grayscale(1);/* W3C */
}
</style>

php转色代码:

<?php
/**
* 主要用于图片的处理函数
*/
//图片的反色功能
function color($url) {
  //获取图片的信息
  list($width, $height, $type, $attr)= getimagesize($url);
  $imagetype = strtolower(image_type_to_extension($type,false));
  $fun = 'imagecreatefrom'.($imagetype == 'jpg'?'jpeg':$imagetype);
  $img = $fun($url);
  for ($y=0; $y < $height; $y++) {
    for ($x=0; $x <$width; $x++) {
    //获取颜色的所以值
    $index = imagecolorat($img, $x, $y);
    //获取颜色的数组
    $color = imagecolorsforindex($img, $index);
    //颜色值的反转
    $red = 256 - $color['red'];
    $green = 256 - $color['green'];
    $blue = 256 - $color['blue'];
    $hex = imagecolorallocate($img, $red, $green, $blue);
    //给每一个像素分配颜色值
    imagesetpixel($img, $x, $y, $hex);
  }
  }
  //输出图片
  switch ($imagetype) {
    case 'gif':
    imagegif($img);
    break;
  case 'jpeg':
    imagejpeg($img);
    break;
  case 'png':
    imagepng($img);
    break;
  default:
    break;
  }
}

测试代码:

$imgurl='1.jpg';
echo color($imgurl);

原图(以小编常用的这副毁童年恶搞图为例):

PHP实现对图片的反色处理功能【测试可用】

运行后(这里以测试为主,至于图片颠覆三观还是五官,小编就不多过问了~):

PHP实现对图片的反色处理功能【测试可用】

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

PHP 相关文章推荐
php中static静态变量的使用方法详解
Jun 04 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 PHP
php 使用array函数实现分页
Feb 13 PHP
PHP中的session安全吗?
Jan 22 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
Apr 27 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
PHP实现简单的协程任务调度demo示例
Feb 01 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 #PHP
基于php双引号中访问数组元素报错的解决方法
Feb 01 #PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 #PHP
PHP双向链表定义与用法示例
Jan 31 #PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 #PHP
PHP 记录访客的浏览信息方法
Jan 29 #PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 #PHP
You might like
咖啡的化学
2021/03/03 咖啡文化
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
php Try Catch异常测试
2009/03/01 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
python中的多线程实例教程
2014/08/27 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
python爬虫请求头的使用
2020/12/01 Python
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
银行实习鉴定
2013/12/13 职场文书
学生上课说话检讨书
2014/10/25 职场文书
2015年校长新年寄语
2014/12/08 职场文书
大足石刻导游词
2015/02/02 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python