這篇文章主要介紹了PHP實現對圖片的反色處理功能,涉及php針對圖片的讀取、數值運算等相關操作技巧,需要的朋友可以參考下
本文執行個體講述了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通過pecl方式安裝擴充的執行個體講解php技巧
php學習筆記之mb_strstr的基本使用php技巧
PHP刪除數組中指定下標的元素方法php執行個體