code: private function region( $filter, $resource, $region, $colorspace = null, $value = null )
      {
          $dest = imagecreatetruecolor( $region["w"], $region["h"] );
          if ( !imagecopy( $dest, $resource, 0, 0, $region["x"], $region["y"], $region["w"], $region["h"] ) )
          {
              throw new ezcImageFilterFailedException( "1/ {$function} applied on region {$region['x']}x{$region['y']}" );
          }
  
          if ( !$colorspace )
          {
              if ( $filter == "pixelateImg" )
              {
                  $result = $this->$filter( $dest, imagesx( $resource ), imagesy( $resource ) );
              }
              else
                  $result = $this->$filter( $dest, $value );
          }
          else
          {
              $this->setActiveResource( $dest );
              parent::colorspace( $colorspace );
              $result = $dest;
          }
  
          if ( !imagecopy( $resource, $result, $region["x"], $region["y"], 0, 0, $region["w"], $region["h"] ) )
          {
              throw new ezcImageFilterFailedException( "2/ {$function} applied on region {$region['x']}x{$region['y']}" );
          }
  
          return $resource;
      }
docs: Apply the filter on the specified region and return the new resource
  
  @param  $filter
  @param  $resource
  @param  $region
  @param  $colorspace
  @param  $value parameters for region handling
  @return imageresource