PHP實(shí)現(xiàn)對(duì)圖片的反色處理功能【測試可用】
本文實(shí)例講述了PHP實(shí)現(xiàn)對(duì)圖片的反色處理功能。分享給大家供大家參考,具體如下:
今天有個(gè)需求用php對(duì)圖片進(jìn)行反色,和轉(zhuǎn)灰,之前不知道可不可行,后來看到了imagefilter()函數(shù),用來轉(zhuǎn)灰綽綽有余,好強(qiáng)大;
imagefilter($im, IMG_FILTER_GRAYSCALE)
當(dāng)然也有人在css里面設(shè)置變灰
<style type="text/css">
img {
-webkit-filter: grayscale(1);/* Webkit */
filter:gray;/* IE6-9 */
filter: grayscale(1);/* W3C */
}
</style>
php轉(zhuǎn)色代碼:
<?php
/**
* 主要用于圖片的處理函數(shù)
*/
//圖片的反色功能
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);
//獲取顏色的數(shù)組
$color = imagecolorsforindex($img, $index);
//顏色值的反轉(zhuǎn)
$red = 256 - $color['red'];
$green = 256 - $color['green'];
$blue = 256 - $color['blue'];
$hex = imagecolorallocate($img, $red, $green, $blue);
//給每一個(gè)像素分配顏色值
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);
原圖(以小編常用的這副毀童年惡搞圖為例):

運(yùn)行后(這里以測試為主,至于圖片顛覆三觀還是五官,小編就不多過問了~):

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《php文件操作總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP將身份證正反面兩張照片合成一張圖片的代碼
- PHP編程獲取圖片的主色調(diào)的方法【基于Imagick擴(kuò)展】
- PHP實(shí)現(xiàn)根據(jù)圖片色界在不同位置加水印的方法
- php檢測圖片主要顏色的方法
- php_imagick實(shí)現(xiàn)圖片剪切、旋轉(zhuǎn)、銳化、減色或增加特效的方法
- php實(shí)現(xiàn)給圖片加灰色半透明效果的方法
- php Imagick獲取圖片RGB顏色值
- PHP實(shí)現(xiàn)獲取圖片顏色值的方法
- php縮小png圖片不損失透明色的解決方法
- PHP圖片處理之圖片旋轉(zhuǎn)和圖片翻轉(zhuǎn)實(shí)例
- php圖片處理:加水印、縮略圖的實(shí)現(xiàn)(自定義函數(shù):watermark、thumbnail)
- php多功能圖片處理類分享(php圖片縮放類)
相關(guān)文章
PHP回調(diào)函數(shù)與匿名函數(shù)實(shí)例詳解
這篇文章主要介紹了PHP回調(diào)函數(shù)與匿名函數(shù),結(jié)合實(shí)例形式分析了php回調(diào)函數(shù)與匿名函數(shù)的具體功能、用法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-08-08
php switch語句多個(gè)值匹配同一代碼塊應(yīng)用示例
switch 語句一行接一行地執(zhí)行(實(shí)際上是語句接語句)。開始時(shí)沒有代碼被執(zhí)行,下面有個(gè)示例,需要的朋友可以參考下2014-07-07
PHP連接sql server 2005環(huán)境配置及問題解決
這篇文章主要介紹了PHP連接sql server 2005環(huán)境配置及問題解決,需要的朋友可以參考下2014-08-08
PHP中實(shí)現(xiàn)多語言支持的幾種方式總結(jié)
本給大家介紹了PHP中實(shí)現(xiàn)多語言支持的幾種方式總結(jié), 使用數(shù)組或關(guān)聯(lián)數(shù)組,使用gettext擴(kuò)展和使用第三方庫這三種方式,文章通過代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12
PHP使用PHPExcel實(shí)現(xiàn)批量上傳到數(shù)據(jù)庫的方法
下面小編就為大家?guī)硪黄狿HP使用PHPExcel實(shí)現(xiàn)批量上傳到數(shù)據(jù)庫的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06

