В следующем примере показано, как можно изменить выделение цветом листа в Aspose.PSD (настройка цвета листа).
[C#]stringsourceFilePath="AllLclrResourceColors.psd";stringoutputFilePath="AllLclrResourceColorsReversed.psd";// В файле цвета выделения слоев идут в таком порядкеSheetColorHighlightEnum[]sheetColorsArr=newSheetColorHighlightEnum[]{SheetColorHighlightEnum.Red,SheetColorHighlightEnum.Orange,SheetColorHighlightEnum.Yellow,SheetColorHighlightEnum.Green,SheetColorHighlightEnum.Blue,SheetColorHighlightEnum.Violet,SheetColorHighlightEnum.Gray,SheetColorHighlightEnum.NoColor};// Цвет листа слоя используется для визуального выделения слоев. // Например, вы можете обновить некоторые слои в PSD, а затем выделить цветом слой, который вы хотите привлечь внимание.using(PsdImageimg=(PsdImage)Image.Load(sourceFilePath)){CheckSheetColorsAndRerverse(sheetColorsArr,img);img.Save(outputFilePath,newPsdOptions());}using(PsdImageimg=(PsdImage)Image.Load(outputFilePath)){// Цвета должны быть инвертированыArray.Reverse(sheetColorsArr);CheckSheetColorsAndRerverse(sheetColorsArr,img);}voidCheckSheetColorsAndRerverse(SheetColorHighlightEnum[]sheetColors,PsdImageimg){intlayersCount=img.Layers.Length;for(intlayerIndex=0;layerIndex<layersCount;layerIndex++){Layerlayer=img.Layers[layerIndex];LayerResource[]resources=layer.Resources;foreach(LayerResourcelayerResourceinresources){// Ресурс lcrl всегда присутствует в списке ресурсов файла psd.LclrResourceresource=layerResourceasLclrResource;if(resource!=null){if(resource.Color!=sheetColors[layerIndex]){thrownewException("Sheet Color has been read wrong");}// Инверсия цветов таблицы стилей. Настройка выделения цветом слоя.resource.Color=sheetColors[layersCount-layerIndex-1];break;}}}}