/** * Check if an image file reference is suitable for embedding. * An image is embeddable if it (a) exists, (b) has a suitable MIME-type, * (c) does not exceed IE<9 size limit of 32kb. This is a LESS predicate * function; it returns a LESS boolean value and can thus be used as a * mixin guard. * * @par Example: * @code * .background-image(@url) when(embeddable(@url)) { * background-image: url(@url) !ie; * } * @endcode * @param array $frame * @param lessc $less */ public static function embeddable($frame, $less) { $base = pathinfo($less->parser->sourceName, PATHINFO_DIRNAME); $url = trim($less->compileValue($frame), '"\''); $file = realpath($base . '/' . $url); return $less->toBool($file && strpos($url, '//') === false && filesize($file) < CSSMin::EMBED_SIZE_LIMIT && CSSMin::getMimeType($file) !== false); }