public Asset(string path) { this.Path = path; this.Path.WithoutQualifier(out string name, out string extension); this.FilenameWithoutQualifierAndExtension = name; this.Extension = extension; if (Densities.TryFind(path, out double foundDensity)) { this.Density = foundDensity; } using (var input = File.Open(path, FileMode.Open)) using (var memory = new MemoryStream()) { input.CopyTo(memory); memory.Seek(0, SeekOrigin.Begin); memory.Position = 0; using (var stream = new SKManagedStream(memory)) { this.bitmap = SKBitmap.Decode(stream); if (this.bitmap == null) { throw new InvalidOperationException($"The provided image isn't valid : {path} (SKBitmap can't be created)."); } } } }
private void GenerateContents(IAsset asset, string folder) { var imagesetFolder = Path.Combine(folder, $"{asset.FilenameWithoutQualifierAndExtension}.imageset"); // Writing Contents.json var contentFile = Path.Combine(imagesetFolder, $"Contents.json"); var densities = Densities.Where(x => x.Value <= asset.Density); var images = string.Join(", ", densities.Select(d => string.Format(ContentsItemTemplate, CreateAssetFilename(asset.FilenameWithoutQualifierAndExtension, asset.Extension, d.Key, d.Value), d.Value.ToString("0.##")))); contentFile.CreateParentDirectory(); File.WriteAllText(contentFile, string.Format(ContentsTemplate, images)); }