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类
Jul 15 PHP
教你IIS6的PHP最佳配置方法
Sep 05 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
[原创]php逐行读取txt文件写入数组的方法
Jul 02 PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
php实现将HTML页面转换成word并且保存的方法
Oct 14 PHP
Yii2框架BootStrap样式的深入理解
Nov 07 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
ezSQL PHP数据库操作类库
2010/05/16 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
php错误、异常处理机制(补充)
2012/05/07 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
javascript parseInt 函数分析(转)
2009/03/21 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
node+multer实现图片上传的示例代码
2020/02/18 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
使用python3实现操作串口详解
2019/01/01 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
python opencv 检测移动物体并截图保存实例
2020/03/10 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
关于梦想的演讲稿
2014/05/05 职场文书
责任心演讲稿
2014/05/14 职场文书
学校社会实践活动总结
2014/07/03 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书