由于在quake3和doom3中使用了大量的TGA格式的图片作为贴图。

而HTML中只能使用PNG/JPG/GIF这几个中图片格式。

因此我们需要遍历quake3或doom3资源中所有TGA格式的图片,将其转换成HTML支持的图片格式。

我们可以访问:https://github.com/steel1990/tga2png 获得TGA转PNG相关程序(纯Node.js版模块)。

接下来使用tga2png来实现批量图片格式转换,具体代码如下所示:

let tga2png = require( 'tga2png' );
let fs = require( "fs" );
let path = require( "path" );

// path为输入参数,表示要递归遍历所有子文件(夹)的路径
// paths为输出参数,输出所有生成后的图片文件名
function readTgaAndWritePngSync ( path, paths )
{
    var pa = fs.readdirSync( path );
    pa.forEach( function ( ele, index )
    {
        let info = fs.statSync( path + "/" + ele )
        if ( info.isDirectory() )
        {
            readDirSync( path + "/" + ele, paths );
        } else
        {
            let tga = path + "/" + ele;
            let idx = tga.indexOf( ".tga" );
            if ( idx !== -1 )
            {
                let png = tga.substring( 0, idx ) + ".png";
                paths.push( png );
                tga2png( tga, png );
            }
        }
    } );
}

// 进行文件格式转换
/*
let paths = [];
readTgaAndWritePngSync( "./data/textures", paths );
console.log( paths )
*/
随风而行之青衫磊落险峰行(www.buleifeng.top) all right reserved,powered by Gitbook本文件修订时间: 2019-10-09 21:01:55

results matching ""

    No results matching ""