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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
提升PHP执行速度全攻略(上)
Oct 09 PHP
什么是MVC,好东西啊
May 03 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
phpize的深入理解
Jun 03 PHP
使用xampp搭建运行php虚拟主机的详细步骤
Oct 21 PHP
php计算年龄精准到年月日
Nov 17 PHP
必须收藏的php实用代码片段
Feb 02 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 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笔记之:日期函数的使用介绍
2013/04/24 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
python3爬取各类天气信息
2018/02/24 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
python3判断IP地址的方法
2021/03/04 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
个人授权委托书
2014/09/15 职场文书
维稳承诺书
2015/01/20 职场文书
长城导游词
2015/01/30 职场文书
稽核岗位职责
2015/02/10 职场文书
爱心募捐通知范文
2015/04/27 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers