Exemple #1
0
 public function WhiteBalance(&$gdimg, $targetColor = '')
 {
     if (phpthumb_functions::IsHexColor($targetColor)) {
         $targetPixel = array('red' => hexdec(substr($targetColor, 0, 2)), 'green' => hexdec(substr($targetColor, 2, 2)), 'blue' => hexdec(substr($targetColor, 4, 2)));
     } else {
         $Analysis = phpthumb_filters::HistogramAnalysis($gdimg, false);
         $targetPixel = array('red' => max(array_keys($Analysis['red'])), 'green' => max(array_keys($Analysis['green'])), 'blue' => max(array_keys($Analysis['blue'])));
     }
     $grayValue = phpthumb_functions::GrayscaleValue($targetPixel['red'], $targetPixel['green'], $targetPixel['blue']);
     $scaleR = $grayValue / $targetPixel['red'];
     $scaleG = $grayValue / $targetPixel['green'];
     $scaleB = $grayValue / $targetPixel['blue'];
     for ($x = 0; $x < ImageSX($gdimg); $x++) {
         for ($y = 0; $y < ImageSY($gdimg); $y++) {
             $currentPixel = phpthumb_functions::GetPixelColor($gdimg, $x, $y);
             $newColor = phpthumb_functions::ImageColorAllocateAlphaSafe($gdimg, max(0, min(255, round($currentPixel['red'] * $scaleR))), max(0, min(255, round($currentPixel['green'] * $scaleG))), max(0, min(255, round($currentPixel['blue'] * $scaleB))), $currentPixel['alpha']);
             ImageSetPixel($gdimg, $x, $y, $newColor);
         }
     }
     return true;
 }
 function GrayscalePixel($OriginalPixel)
 {
     $gray = phpthumb_functions::GrayscaleValue($OriginalPixel['red'], $OriginalPixel['green'], $OriginalPixel['blue']);
     return array('red' => $gray, 'green' => $gray, 'blue' => $gray);
 }