Example #1
0
		public override void Import (string input, Stream output) {
			var ser = new JsonSerializer();
			AtlasMetadata metadata = null;
			
			string metaPath = "atlas.meta";
			if (File.Exists(metaPath)) {
				using (var sr = new StreamReader(metaPath)) {
					metadata = ser.Deserialize<AtlasMetadata>(new JsonTextReader(sr));
				}
			} else
				metadata = new AtlasMetadata();

			var lp = new LayoutProperties {
				inputFilePaths = (Directory.Exists("./sprites") ? Directory.GetFiles("./sprites") : Directory.GetFiles("."))
					.Where(p => SupportedFormats.Contains(Path.GetExtension(p).ToLower())).ToArray(),
				distanceBetweenImages = metadata.Padding,
				marginWidth = metadata.Margin,
				powerOfTwo = metadata.PowerOfTwo,
				maxSpriteWidth = metadata.MaxSpriteWidth > 0 ? metadata.MaxSpriteWidth : 16384,
				maxSpriteHeight = metadata.MaxSpriteHeight > 0 ? metadata.MaxSpriteHeight : 16384,
				filterMode = metadata.FilterMode,
			};
			var sheetMaker = new AtlasBuilder(lp);

			using (var tw = new TarWriter(output)) {
				using (MemoryStream atlasStream = new MemoryStream(), sheetStream = new MemoryStream()) {
					using (var bw = new BinaryWriter(atlasStream)) {
						sheetMaker.Create(bw, sheetStream, ImageFormat.Png, metadata.NoPreMultiply);
						bw.Flush();
						atlasStream.Position = 0;
						sheetStream.Position = 0;
						tw.Write(atlasStream, atlasStream.Length, "atlas.bin");
						tw.Write(sheetStream, sheetStream.Length, "sheet.png");
					}
				}
			}
		}
Example #2
0
 public AtlasBuilder(LayoutProperties _layoutProp)
 {
     images      = new Dictionary <int, Image>();
     spriteNames = new Dictionary <int, string>();
     layoutProp  = _layoutProp;
 }
Example #3
0
        public AtlasBuilder(LayoutProperties _layoutProp)
        {
            images = new Dictionary<int, Image>();
			spriteNames = new Dictionary<int, string>();
            layoutProp = _layoutProp;
        }