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 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
PHP 程序员应该使用的10个组件
Oct 31 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
深入PHP中的HashTable结构详解
Jun 13 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
学习PHP Cookie处理函数
Aug 09 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 PHP
在laravel框架中使用model层的方法
Oct 08 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 memcache扩展的三种安装方法
2009/04/26 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
JS实现滑动插件
2020/01/15 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
Python re模块介绍
2014/11/30 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
Python 移动光标位置的方法
2019/01/20 Python
python中import与from方法总结(推荐)
2019/03/21 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
如何让python的运行速度得到提升
2020/07/08 Python
办公室副主任岗位职责
2013/11/25 职场文书
校本教研工作方案
2014/01/14 职场文书
高级销售求职信
2014/02/21 职场文书
老乡聚会通知
2015/04/23 职场文书
七一表彰大会简报
2015/07/20 职场文书
导游词之青城山景区
2019/09/27 职场文书
Python源码解析之List
2021/05/21 Python
基于angular实现树形二级表格
2021/10/16 Javascript
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android