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判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
php使用异或实现的加密解密实例
Sep 04 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
php定时执行任务设置详解
Feb 06 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 PHP
php实现的微信红包算法分析(非官方)
Sep 25 PHP
Zend Framework入门知识点小结
Mar 19 PHP
PHP与服务器文件系统的简单交互
Oct 21 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
PHP 时间处理类Carbon
May 20 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代码(星期六,星期日总和)
2009/11/12 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
node.js [superAgent] 请求使用示例
2015/03/13 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python中的sort方法使用详解
2014/07/25 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
Python输入二维数组方法
2018/04/13 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
Python Lambda函数使用总结详解
2019/12/11 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
车辆工程专业求职信
2014/04/28 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
职工培训工作总结
2015/08/10 职场文书
《春酒》教学反思
2016/02/22 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android