UNPKG

pw-guild-icon-parser

Version:

Parser for Perfect World guild icon lists - converts PNG icons to DDS atlas format with DXT5 compression

29 lines 1.08 kB
import sharp from 'sharp'; export async function validateAndConvertPNG(pngPath) { const image = sharp(pngPath); const metadata = await image.metadata(); if (!metadata.width || !metadata.height) { throw new Error('Failed to read image dimensions'); } if (metadata.width !== 16 || metadata.height !== 16) { throw new Error(`Image must be exactly 16x16 pixels, got ${metadata.width}x${metadata.height}`); } if (metadata.format !== 'png') { throw new Error(`Image must be PNG format, got ${metadata.format}`); } // Extract RGBA data (ensureAlpha adds alpha channel if missing) const rawData = await image .ensureAlpha() .raw() .toBuffer({ resolveWithObject: true }); // Verify we got RGBA (4 channels) if (rawData.info.channels !== 4) { throw new Error(`Expected RGBA image (4 channels), got ${rawData.info.channels} channels`); } return { width: metadata.width, height: metadata.height, data: rawData.data }; } //# sourceMappingURL=converter.js.map