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维护文件系统
Oct 09 PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 PHP
PHP的魔术常量__METHOD__简介
Jul 08 PHP
php采用curl实现伪造IP来源的方法
Nov 21 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
Yii2如何批量添加数据
May 17 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
PHP实现git部署的方法教程
Dec 19 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
php workerman定时任务的实现代码
Dec 23 PHP
PHP strripos函数用法总结
Feb 11 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中防止SQL注入的最佳解决方法
2013/04/25 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
基于Python pip用国内镜像下载的方法
2018/06/12 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
django中的图片验证码功能
2019/09/18 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
python中os.remove()用法及注意事项
2021/01/31 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
初中同学会活动方案
2014/08/22 职场文书
综合素质评价自我评价
2015/03/06 职场文书
共青团员自我评价
2015/03/10 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
springboot+VUE实现登录注册
2021/05/27 Vue.js
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers