/**
  * Applies a filter to an image file. The file will be copies to a fresh location.
  *
  * @param \imagemanipulation\filter\IImageFilter $aFilter The image filter to apply
  * @param \SplFileInfo $file The orifinal image file
  * @param string $aIdentifier The identifier to use for caching purposes
  *
  * @return \imagemanipulation\ImageImageResource
  */
 protected function applyFilter($aFilter, $file, $aIdentifier)
 {
     $res = $this->getImageRes($file, $aIdentifier);
     $aFilter->applyFilter($res);
     $res->setIsOverwrite(true);
     $res->setQuality(100);
     $res->createImage();
     return $res;
 }
 /**
  * Apply a filter to the image resource
  * @param IImageFilter $aFilter
  * @return \imagemanipulation\ImageResource
  */
 public function filter(IImageFilter $filter)
 {
     $filter->applyFilter($this);
     return $this;
 }