當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Image::filter方法代碼示例

本文整理匯總了PHP中Intervention\Image\Image::filter方法的典型用法代碼示例。如果您正苦於以下問題:PHP Image::filter方法的具體用法?PHP Image::filter怎麽用?PHP Image::filter使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Intervention\Image\Image的用法示例。


在下文中一共展示了Image::filter方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: applyFilter

 /**
  * Applies filter effects to the given image
  *
  * @param Image\Image $image The image to filter.
  *
  * @return Image\Image The filtered image.
  *
  * @throws FilterException if the image filter algorithm fails.
  */
 public function applyFilter(Image\Image $image)
 {
     if ($this->level <= 0) {
         $gd = $image->getCore();
         $width = imagesx($gd);
         $height = imagesy($gd);
         for ($x = 0; $x < $width; ++$x) {
             for ($y = 0; $y < $height; ++$y) {
                 $rgba = imagecolorsforindex($gd, imagecolorat($gd, $x, $y));
                 $r = $rgba['red'];
                 $g = $rgba['green'];
                 $b = $rgba['blue'];
                 $a = $rgba['alpha'];
                 $level = $this->level * -1;
                 $max = max($r, $g, $b);
                 $avg = ($r + $g + $b) / 3;
                 $amt = abs($max - $avg) * 2 / 255 * $level / 100;
                 if ($r !== $max) {
                     $r += ($max - $r) * $amt;
                 }
                 if ($g !== $max) {
                     $g += ($max - $g) * $amt;
                 }
                 if ($b !== $max) {
                     $b += ($max - $b) * $amt;
                 }
                 imagesetpixel($gd, $x, $y, imagecolorallocatealpha($gd, $r, $g, $b, $a));
             }
         }
         $image->setCore($gd);
     } else {
         $image->filter(new SaturateFilter($this->level));
     }
     return $image;
 }
開發者ID:BitmanNL,項目名稱:traffictower-cms,代碼行數:44,代碼來源:VibranceFilter.php

示例2: applyFilter

 /**
  * Applies filter effects to the given image
  *
  * @param Image\Image $image The image to filter.
  *
  * @return Image\Image The filtered image.
  *
  * @throws FilterException if the image filter algorithm fails.
  */
 public function applyFilter(Image\Image $image)
 {
     // Change the level range from 0-200 to -100-100 to use it in the
     // brightness and contrast filters.
     $level = $this->level - 100;
     if ($level <= 0) {
         $image->filter(new BrightnessFilter($level));
     } else {
         // Don't apply a ridiculous amount of brightness or contrast;
         // exposure level 0-100 applies 0%-15% of contrast and brightness.
         $level = (int) round($level / 100 * 15);
         $image->filter(new BrightnessFilter($level));
         $image->filter(new ContrastFilter($level));
     }
     return $image;
 }
開發者ID:BitmanNL,項目名稱:traffictower-cms,代碼行數:25,代碼來源:ExposureFilter.php


注:本文中的Intervention\Image\Image::filter方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。