src/ispriter.js
function getImageUrl(style, dir) {
    var format = spriteConfig.input.format,
        ignoreImages = spriteConfig.input.ignoreImages,
        backgroundImage = style['background-image'],
        url = null,
        ext,
        match;

    if (!backgroundImage) {
        return null;
    }

    if (backgroundImage.indexOf(',') > -1) {

        // FIXME 暂时忽略掉多背景的属性
        // FIXME 提取 url 进行拷贝
        return null;
    }

    match = backgroundImage.match(regexp.image);

    if (match) {
        url = match[1];
        ext = match[2];

        if (format.indexOf(ext) == -1) { // 去掉非指定后缀的图片

            unspriteImageArray.push(path.join(dir, url));
            return null;
        }
        if (regexp.ignoreImage.test(backgroundImage)) { // 去掉不需要合并图片

            unspriteImageArray.push(path.join(dir, url));
            info('>>Skip: Unsprite image "' + url + '"');
            url = backgroundImage.replace(regexp.ignoreImage, '');
            style.setProperty('background-image', url, null);
            return null;
        }

    } else {
        debug('not match image bg: ' + backgroundImage);
        return null;
    }

    // 遇到网络图片就跳过
    if (regexp.ignoreNetwork.test(url)) {

        // 这里直接返回了, 因为一个style里面是不会同时存在两个 background-image 的
        info('>>Skip: Network image "' + url + '"');
        return null;
    }

    if (ignoreImages) {
        for (var i = 0; i < ignoreImages.length; i++) {

            if (ignoreImages[i].test(url)) {
                info('>>Skip: Unsprite image "' + url + '"');
                return null;
            }
        }
    }

    return url;
}
function getImageUrl(style, dir) {
    var format = spriteConfig.input.format,
        ignoreImages = spriteConfig.input.ignoreImages,
        backgroundImage = style['background-image'],
        url = null,
        ext,
        match;

    if (!backgroundImage) {
        return null;
    }

    if (backgroundImage.indexOf(',') > -1) {

        // FIXME 暂时忽略掉多背景的属性
        // FIXME 提取 url 进行拷贝
        return null;
    }

    match = backgroundImage.match(regexp.image);

    if (match) {
        url = match[1];
        ext = match[2];

        if (format.indexOf(ext) == -1) { // 去掉非指定后缀的图片

            unspriteImageArray.push(path.join(dir, url));
            return null;
        }
        if (regexp.ignoreImage.test(backgroundImage)) { // 去掉不需要合并图片

            unspriteImageArray.push(path.join(dir, url));
            info('>>Skip: Unsprite image "' + url + '"');
            url = backgroundImage.replace(regexp.ignoreImage, '');
            style.setProperty('background-image', url, null);
            return null;
        }

    } else {
        debug('not match image bg: ' + backgroundImage);
        return null;
    }

    // 遇到网络图片就跳过
    if (regexp.ignoreNetwork.test(url)) {

        // 这里直接返回了, 因为一个style里面是不会同时存在两个 background-image 的
        info('>>Skip: Network image "' + url + '"');
        return null;
    }

    if (ignoreImages) {
        for (var i = 0; i < ignoreImages.length; i++) {

            if (ignoreImages[i].test(url)) {
                info('>>Skip: Unsprite image "' + url + '"');
                return null;
            }
        }
    }

    return url;
}
从background-image 的值中提取图片的路径
@return {String}       url