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(3) php 函数
Feb 15 PHP
php绝对路径与相对路径之间关系的的分析
Mar 03 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
Jul 02 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
php文件操作相关类实例
Jun 18 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
swoole和websocket简单聊天室开发
Nov 18 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
JS 显示当前日期与时间的代码
2010/03/24 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
python版本五子棋的实现代码
2018/12/11 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
Python中私有属性的定义方式
2020/03/05 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
《埃及的金字塔》教学反思
2014/04/07 职场文书
测控技术自荐信
2014/06/05 职场文书
优秀员工自荐书
2015/03/06 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书