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与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
理解php Hash函数,增强密码安全
Feb 25 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
Codeigniter注册登录代码示例
Jun 12 PHP
PHP写日志的实现方法
Nov 05 PHP
PHP文件操作方法汇总
Jul 01 PHP
php邮箱地址正则表达式验证
Nov 13 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 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编写大型网站问题集
2007/03/06 PHP
php 接口类与抽象类的实际作用
2009/11/26 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
js的回调函数详解
2015/01/05 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
tornado捕获和处理404错误的方法
2014/02/26 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python提取网页中超链接的方法
2016/09/18 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
Python语法分析之字符串格式化
2019/06/13 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
python中time tzset()函数实例用法
2021/02/18 Python
台湾旅游网站:雄狮旅游网
2017/08/16 全球购物
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
学生会个人自荐书范文
2014/02/12 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
高中生军训感言
2015/08/01 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python