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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
php中用于检测一个地理IP地址是否可用的代码
Feb 19 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
php广告加载类用法实例
Sep 23 PHP
php获取文章上一页与下一页的方法
Dec 01 PHP
php相对当前文件include其它文件的方法
Mar 13 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 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
php中的三元运算符使用说明
2011/07/03 PHP
cakephp常见知识点汇总
2017/02/24 PHP
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
javascript date格式化示例
2013/09/25 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
深入理解Django的自定义过滤器
2017/10/17 Python
python os模块简单应用示例
2019/05/23 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
Django用户认证系统 User对象解析
2019/08/02 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
家长给孩子的表扬信
2014/01/17 职场文书
营销总经理岗位职责
2014/02/02 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
干部个人对照检查材料
2014/08/25 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
golang连接MySQl使用sqlx库
2022/04/14 Golang
vue如何清除浏览器历史栈
2022/05/25 Vue.js
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers