feat: 实现纹理图集生成功能

添加纹理图集生成工具,支持多图片合并为单个图集并生成坐标数据文件

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-26 21:10:58 +08:00
parent 54009163b1
commit 663917f663
11 changed files with 3041 additions and 114 deletions

View File

@@ -29,7 +29,9 @@
"failed": "Failed",
"ready": "Ready to process",
"file": "File",
"files": "files"
"files": "files",
"yes": "Yes",
"no": "No"
},
"nav": {
"tools": "Tools",
@@ -151,6 +153,7 @@
"videoToFrames": "Video to Frames",
"imageCompression": "Image Compression",
"audioCompression": "Audio Compression",
"textureAtlas": "Texture Atlas",
"aiImage": "AI Image",
"aiAudio": "AI Audio"
},
@@ -180,9 +183,11 @@
"format": "Output Format",
"formatDescription": "Convert to a different format (optional)",
"formatOriginal": "Original",
"formatAuto": "Auto (Best)",
"formatJpeg": "JPEG",
"formatPng": "PNG",
"formatWebp": "WebP"
"formatWebp": "WebP",
"formatAvif": "AVIF"
},
"videoFrames": {
"title": "Export Settings",
@@ -207,19 +212,50 @@
"channelsDescription": "Audio channels",
"stereo": "Stereo (2 channels)",
"mono": "Mono (1 channel)"
},
"textureAtlas": {
"title": "Atlas Settings",
"description": "Configure texture atlas generation",
"maxWidth": "Max Width",
"maxWidthDescription": "Maximum atlas width in pixels",
"maxHeight": "Max Height",
"maxHeightDescription": "Maximum atlas height in pixels",
"padding": "Padding",
"paddingDescription": "Space between sprites (prevents bleeding)",
"allowRotation": "Allow Rotation",
"allowRotationDescription": "Rotate sprites for better packing efficiency",
"pot": "Power of Two",
"potDescription": "Use power-of-two dimensions (512, 1024, 2048, etc.)",
"format": "Image Format",
"formatDescription": "Output image format",
"quality": "Quality",
"qualityDescription": "Compression quality for WebP format",
"outputFormat": "Data Format",
"outputFormatDescription": "Format for sprite metadata",
"algorithm": "Packing Algorithm",
"algorithmDescription": "Algorithm for arranging sprites",
"formatPng": "PNG (Lossless)",
"formatWebp": "WebP (Compressed)",
"outputCocos2d": "Cocos2d plist",
"outputCocosCreator": "Cocos Creator JSON",
"outputGeneric": "Generic JSON",
"algorithmMaxRects": "MaxRects (Best)",
"algorithmShelf": "Shelf (Fast)"
}
},
"tools": {
"imageCompression": {
"title": "Image Compression",
"description": "Optimize images for web and mobile without quality loss",
"description": "World-class image compression with smart optimization",
"compressImages": "Compress Images",
"features": "Features",
"featureList": [
"Batch processing - compress multiple images at once",
"Smart compression - maintains visual quality",
"Format conversion - PNG to JPEG, WebP, and more",
"Up to 80% size reduction without quality loss"
"Smart compression - guaranteed smaller output or return original",
"Multi-strategy optimization - tries multiple algorithms to find the best result",
"Auto format selection - intelligently picks the best format for your image",
"MozJPEG & WebP - industry-leading compression algorithms",
"Metadata stripping - automatic removal of EXIF and unnecessary data",
"Batch processing - compress multiple images at once"
]
},
"videoFrames": {
@@ -243,6 +279,25 @@
"output": "Output",
"inputFormats": "MP3, WAV, OGG, AAC, FLAC, M4A",
"outputFormats": "MP3, AAC, OGG, FLAC"
},
"textureAtlas": {
"title": "Texture Atlas",
"description": "Combine multiple images into a single texture atlas for game development",
"createAtlas": "Create Texture Atlas",
"features": "Features",
"featureList": [
"Smart packing - MaxRects algorithm for optimal space usage",
"Cocos Creator compatible - export in plist/JSON format",
"Rotation support - can rotate sprites for better packing",
"Power of Two - automatic POT sizing for better compatibility"
],
"downloadAll": "Download All",
"downloadImage": "Download Image",
"downloadData": "Download Data",
"dimensions": "Dimensions",
"sprites": "Sprites",
"imageFormat": "Image Format",
"dataFormat": "Data Format"
}
},
"processing": {
@@ -252,8 +307,11 @@
"extractingFrames": "Extracting frames...",
"uploadingAudio": "Uploading audio...",
"compressingAudio": "Compressing audio...",
"uploadingSprites": "Uploading sprites...",
"creatingAtlas": "Creating texture atlas...",
"compressionComplete": "Compression complete!",
"processingComplete": "Processing complete!",
"atlasComplete": "Texture atlas created successfully!",
"compressionFailed": "Compression failed",
"processingFailed": "Processing failed",
"unknownError": "Unknown error",