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不用正则采集速度探究总结
Mar 24 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 PHP
php 删除cookie方法详解
Dec 01 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
php面试中关于面向对象的相关问题
Feb 13 PHP
如何重写Laravel异常处理类详解
Dec 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缓存类完整实例
2014/07/26 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
javascript时区函数介绍
2012/09/14 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
js控制frameSet示例
2013/09/10 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
JavaScript Promise 用法
2016/06/14 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
python实现图片变亮或者变暗的方法
2015/06/01 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
python numpy元素的区间查找方法
2018/11/14 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
python 字符串格式化的示例
2020/09/21 Python
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
爱岗敬业演讲稿范文
2014/01/14 职场文书
个人现实表现材料
2014/02/04 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
英文邀请函
2015/02/02 职场文书
综合素质自我评价评语
2015/03/06 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL