/////////////////////////////////////////////////////////////////////////// public void PrepareSave() { foreach (var ch in Channels) { ch.CompressImageData(); } // Create or update the Unicode layer name to be consistent with the // ANSI layer name. var layerUnicodeNames = AdditionalInfo.Where(x => x is LayerUnicodeName); if (layerUnicodeNames.Count() > 1) { throw new PsdInvalidException("Layer has more than one LayerUnicodeName."); } var layerUnicodeName = (LayerUnicodeName)layerUnicodeNames.FirstOrDefault(); if (layerUnicodeName == null) { layerUnicodeName = new LayerUnicodeName(Name); AdditionalInfo.Add(layerUnicodeName); } else if (layerUnicodeName.Name != Name) { layerUnicodeName.Name = Name; } }