private void ReplaceArtwork(ref SmartObjectLayer smartObjectLayer, int newHeight = 300) { // Load the input image using (var image = NetVips.Image.NewFromFile(ImageFilePath, access: Enums.Access.Sequential)) { var scale = (double)newHeight / smartObjectLayer.Height; var newWidth = (int)Math.Round(smartObjectLayer.Width * scale); var newImage = ResizeImageFitCenter(image, newWidth, newHeight); using var innerImage = new PsdImage(newWidth, newHeight); innerImage.SetResolution(72, 72); using var innerStream = new MemoryStream(newImage.PngsaveBuffer()); using var layer = new Aspose.PSD.FileFormats.Psd.Layers.Layer(innerStream) { HorizontalResolution = 72, VerticalResolution = 72 }; innerImage.AddLayer(layer); smartObjectLayer.ReplaceContents(innerImage); smartObjectLayer.UpdateModifiedContent(); } }