63 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | "use strict"; | ||
|  | Object.defineProperty(exports, "__esModule", { value: true }); | ||
|  | exports.exportBmp = exports.exportPng24 = exports.exportPng = exports.exportIcns = exports.exportIco = void 0; | ||
|  | const cp = require("child_process"); | ||
|  | const fs = require("fs"); | ||
|  | const path = require("path"); | ||
|  | const log = require("./log"); | ||
|  | const exec = require("./exec"); | ||
|  | function run(exe, from, to, width, height, format, background, transparent, callback) { | ||
|  |     let params = ['from=' + from, 'to=' + to, 'format=' + format, 'keepaspect']; | ||
|  |     if (width > 0) | ||
|  |         params.push('width=' + width); | ||
|  |     if (height > 0) | ||
|  |         params.push('height=' + height); | ||
|  |     if (background !== undefined && !transparent) | ||
|  |         params.push('background=' + background.toString(16)); | ||
|  |     if (transparent) | ||
|  |         params.push('transparent=' + background.toString(16)); | ||
|  |     let child = cp.spawn(exe, params); | ||
|  |     child.stdout.on('data', (data) => { | ||
|  |         // log.info('kraffiti stdout: ' + data);
 | ||
|  |     }); | ||
|  |     child.stderr.on('data', (data) => { | ||
|  |         log.error('kraffiti stderr: ' + data); | ||
|  |     }); | ||
|  |     child.on('error', (err) => { | ||
|  |         log.error('kraffiti error: ' + err); | ||
|  |     }); | ||
|  |     child.on('close', (code) => { | ||
|  |         if (code !== 0) | ||
|  |             log.error('kraffiti exited with code ' + code); | ||
|  |         callback(); | ||
|  |     }); | ||
|  | } | ||
|  | function findIcon(icon, from, options) { | ||
|  |     if (icon && fs.existsSync(path.join(from, icon))) | ||
|  |         return path.join(from, icon); | ||
|  |     if (fs.existsSync(path.join(from, 'icon.png'))) | ||
|  |         return path.join(from, 'icon.png'); | ||
|  |     else | ||
|  |         return path.join(options.kha, 'Kinc', 'Tools', exec.sysdir(), 'icon.png'); | ||
|  | } | ||
|  | function exportIco(icon, to, from, options) { | ||
|  |     run(options.kraffiti, findIcon(icon, from.toString(), options), to.toString(), 0, 0, 'ico', undefined, false, function () { }); | ||
|  | } | ||
|  | exports.exportIco = exportIco; | ||
|  | function exportIcns(icon, to, from, options) { | ||
|  |     run(options.kraffiti, findIcon(icon, from.toString(), options), to.toString(), 0, 0, 'icns', undefined, false, function () { }); | ||
|  | } | ||
|  | exports.exportIcns = exportIcns; | ||
|  | function exportPng(icon, to, width, height, background, transparent, from, options) { | ||
|  |     run(options.kraffiti, findIcon(icon, from.toString(), options), to.toString(), width, height, 'png', background, transparent, function () { }); | ||
|  | } | ||
|  | exports.exportPng = exportPng; | ||
|  | function exportPng24(icon, to, width, height, background, transparent, from, options) { | ||
|  |     run(options.kraffiti, findIcon(icon, from.toString(), options), to.toString(), width, height, 'png24', background, transparent, function () { }); | ||
|  | } | ||
|  | exports.exportPng24 = exportPng24; | ||
|  | function exportBmp(icon, to, width, height, background, from, options) { | ||
|  |     run(options.kraffiti, findIcon(icon, from.toString(), options), to.toString(), width, height, 'bmp', background, false, function () { }); | ||
|  | } | ||
|  | exports.exportBmp = exportBmp; | ||
|  | //# sourceMappingURL=Icon.js.map
 |