protected function saveAlpha(Png $png, $flag)
    {
        if ($flag) {
            $png->alphaBlending(false);
            if (false == @imagesavealpha($png->getHandler(), $flag)) {
                throw new CanvasException(sprintf(
                        'Faild Saving The Alpha Channel Information To The Png Canvas "%s"'
                        , (string) $this
                ));
            }
        }

        return $this;
    }