Grafika\Gd\Editor::resizeExact PHP Method

resizeExact() public method

Resize image to exact dimensions ignoring aspect ratio. Useful if you want to force exact width and height.
public resizeExact ( Image &$image, integer $newWidth, integer $newHeight ) : Editor
$image Image
$newWidth integer Width in pixels.
$newHeight integer Height in pixels.
return Editor
    public function resizeExact(&$image, $newWidth, $newHeight)
    {
        $this->_resize($image, $newWidth, $newHeight);
        return $this;
    }

Usage Example

Example #1
0
 /**
  * Generate and get the average hash of the image.
  *
  * @param Image $image
  *
  * @param Editor $editor
  *
  * @return string
  */
 public function hash($image, $editor)
 {
     // Resize the image.
     $width = 8;
     $height = 8;
     $image = clone $image;
     // Make sure we are working on the clone if Image is passed
     $editor->resizeExact($image, $width, $height);
     // Resize to exactly 8x8
     $gd = $image->getCore();
     // Create an array of greyscale pixel values.
     $pixels = array();
     for ($y = 0; $y < $height; $y++) {
         for ($x = 0; $x < $width; $x++) {
             $rgba = imagecolorat($gd, $x, $y);
             $r = $rgba >> 16 & 0xff;
             $g = $rgba >> 8 & 0xff;
             $b = $rgba & 0xff;
             $pixels[] = floor(($r + $g + $b) / 3);
             // Gray
         }
     }
     // Get the average pixel value.
     $average = floor(array_sum($pixels) / count($pixels));
     // Each hash bit is set based on whether the current pixels value is above or below the average.
     $hash = '';
     foreach ($pixels as $pixel) {
         if ($pixel > $average) {
             $hash .= '1';
         } else {
             $hash .= '0';
         }
     }
     return $hash;
 }
All Usage Examples Of Grafika\Gd\Editor::resizeExact