我先循环查找出psd文件中的SmartObjectLayer,我尝试用ReplaceContents来更新智能对象,当它循环第二个智能对象图层时出错!我该用什么方法来同时更新多个智能对象的图层呢?
以下是我的代码:
using (var image = (PsdImage)Image.Load(filePath))
{
for (int i = 0; i < image.Layers.Length; i++)
{
//var layer = image.Layers[i];
//if(layer.DisplayName==“素材”)
if (image.Layers[i].GetType().Name.Contains(“SmartObjectLayer”))
{
SmartObjectLayer smartObjectLayer = (SmartObjectLayer)image.Layers[i];
smartObjectLayer.ReplaceContents(newContentPath);
}
}
image.SmartObjectProvider.UpdateAllModifiedContent();
image.Save(pngOutputPath, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
image.Save(psdOutputPath, new PsdOptions(image));
}