Class SoLdResource
Содержание
[
Скрывать
]SoLdResource class
Определяет класс SoLdResource, который содержит информацию о слое смарт-объектов в файле PSD. Используется для поддержки слоев смарт-объектов в изображениях Adobe® Photoshop®.
public class SoLdResource : SmartObjectResource
Конструкторы
Имя | Описание |
---|---|
SoLdResource() | Инициализирует новый экземплярSoLdResource class. Этот конструктор по умолчанию предназначен для использованияSoLdResourceLoader . ИспользоватьSmartResourceCreator для создания классов SoLdResource. |
SoLdResource(Guid, bool, bool) | Инициализирует новый экземплярSoLdResource class. Для получения готового экземпляра необходимо установить свойство Items или вызвать InitializeItems(). Этот конструктор предназначен для использованияSmartResourceCreator и в модульных тестах. ИспользованиеSmartResourceCreator для создания классов SoLdResource. |
Характеристики
Имя | Описание |
---|---|
override AntiAliasPolicy { get; set; } | Получает или задает политику сглаживания данных слоя смарт-объекта в изображении PSD. |
Bottom { get; set; } | Получает или задает положение нижнего слоя размещенного слоя в изображении PSD. |
Bounds { get; set; } | Получает или задает границы размещенного слоя в файле PSD. |
Comp { get; set; } | Получает или задает значение компоновки данных слоя смарт-объекта в PSD-файле. Композиции слоев в смарт-объектах |
CompId { get; set; } | Получает или задает идентификатор текущей выбранной композиции для дочернего документа, который будет равен -1, если ничего не выбрано. Композиции — это композиции макета страницы, которые могут создавать дизайнеры. Используя композиции слоев, вы можете создавать, управлять и просматривать несколько версий макета в одном файле Adobe® Photoshop®. Композиция слоев — это снимок состояния панели «Слои». Композиции слоев сохраняют три типа параметров слоя, но это свойство получает идентификатор выбора композиции слоев для слоя смарт-объекта в файле PSD. Композиции слоев в смарт-объектах |
Crop { get; set; } | Получает или задает обрезку данных слоя смарт-объекта в изображении PSD. |
DurationDenominator { get; set; } | Получает или задает знаменатель длительности. |
DurationNumerator { get; set; } | Получает или задает числитель длительности. |
FrameCount { get; set; } | Получает или задает количество кадров данных слоя смарт-объекта в PSD-файле. |
FrameStepDenominator { get; set; } | Получает или задает знаменатель шага кадра. |
FrameStepNumerator { get; set; } | Получает или задает числитель шага кадра. |
Height { get; set; } | Получает или задает высоту. |
HorizontalMeshPoints { get; set; } | Получает или задает горизонтальные точки сетки размещенного слоя в файле PSD. |
HorizontalMeshPointUnit { get; set; } | Получает или задает единицу измерения горизонтальных точек сетки. |
IsCustom { get; set; } | Получает или задает значение, указывающее, является ли этот стиль деформации экземпляра пользовательским. Если true, он содержит точки сетки. Если установлено значение false, стираются точки сетки. |
override Items { get; set; } | Получает или задает элементы дескриптора данных слоя смарт-объекта в файле PSD. |
override Key { get; } | Получает ключ ресурса слоя смарт-объекта SoLd. |
Left { get; set; } | Получает или задает левое расположение размещенного слоя в PSD-файле. |
override Length { get; } | Получает длину ресурса смарт-объекта в байтах. |
NonAffineTransformMatrix { get; set; } | Получает или задает матрицу неаффинного преобразования данных слоя смарт-объекта в файле PSD. |
OriginalCompId { get; } | Получает исходный идентификатор текущей выбранной композиции для дочернего документа, который будет равен -1, если ничего не выбрано. Это свойство получает исходный идентификатор выбора композиции слоя для слоя смарт-объекта в файле PSD.Композиции слоев в смарт-объектах |
override PageNumber { get; set; } | Получает или задает номер страницы данных слоя смарт-объекта в PSD-файле. |
Perspective { get; set; } | Получает или задает значение перспективы размещенного слоя в файле PSD. |
PerspectiveOther { get; set; } | Получает или задает другое значение перспективы размещенного слоя в файле PSD. |
PlacedId { get; set; } | Получает или задает уникальный идентификатор данных слоя этого смарт-объекта в изображении PSD. |
override PlacedLayerType { get; set; } | Получает или задает тип данных слоя смарт-объекта в файле PSD. |
override PsdVersion { get; } | Получает минимальную версию PSD, необходимую для ресурса смарт-объекта. 0 означает отсутствие ограничений. |
Resolution { get; set; } | Получает или задает разрешение данных слоя смарт-объекта в PSD-файле. |
ResolutionUnit { get; set; } | Получает или задает единицу измерения разрешения данных слоя смарт-объекта в PSD-файле. |
Right { get; set; } | Получает или задает правильное расположение размещенного слоя в файле PSD. |
override Signature { get; } | Получает подпись ресурса смарт-объекта. |
Top { get; set; } | Получает или задает верхнюю позицию размещенного слоя в изображении PSD. |
override TotalPages { get; set; } | Получает или задает общее количество страниц данных слоя смарт-объекта в PSD-файле. |
override TransformMatrix { get; set; } | Получает или задает матрицу преобразования данных слоя смарт-объекта в PSD-файле. |
override UniqueId { get; set; } | Получает или задает глобальный уникальный идентификатор данных слоя смарт-объекта.SmartObjectResource в изображении PSD. |
UOrder { get; set; } | Получает или задает значение порядка U размещенного слоя в PSD-файле. |
Value { get; set; } | Получает или задает значение деформации размещенного слоя в изображении PSD. |
Version { get; } | Получает версию размещенного слоя в файле PSD, обычно 3. |
VerticalMeshPoints { get; set; } | Получает или задает горизонтальные точки сетки размещенного слоя в файле PSD. |
VerticalMeshPointUnit { get; set; } | Получает или задает единицу измерения точек вертикальной сетки. |
VOrder { get; set; } | Получает или задает значение V порядка размещенного слоя в файле PSD. |
Width { get; set; } | Получает или задает ширину. |
Методы
Имя | Описание |
---|---|
override Save(StreamContainer, int) | Сохраняет ресурс смарт-объекта в указанный контейнер потока. |
override ToString() | ВозвращаетString который представляет этот экземпляр. |
Поля
Имя | Описание |
---|---|
const TypeToolKey | Информационный ключ типа инструмента: ‘SoLd’. |
Примеры
Следующий код демонстрирует поддержку ресурса SoLdResource.
[C#]
// В этом примере показано, как получить или установить свойства данных слоя смарт-объекта файла PSD.
void AssertAreEqual(object actual, object expected)
{
var areEqual = object.Equals(actual, expected);
if (!areEqual && actual is Array && expected is Array)
{
var actualArray = (Array)actual;
var expectedArray = (Array)actual;
if (actualArray.Length == expectedArray.Length)
{
for (int i = 0; i < actualArray.Length; i++)
{
if (!object.Equals(actualArray.GetValue(i), expectedArray.GetValue(i)))
{
break;
}
}
areEqual = true;
}
}
if (!areEqual)
{
throw new FormatException(
string.Format("Actual value {0} are not equal to expected {1}.", actual, expected));
}
}
var sourceFilePath = "LayeredSmartObjects8bit2.psd";
var outputFilePath = "LayeredSmartObjects8bit2_output.psd";
var expectedValues = new object[]
{
new object[]
{
true,
"76f05a3b-7523-5e42-a1bb-27f4735bffa0",
1,
1,
0x10,
PlacedLayerType.Raster,
new double[8]
{
29.937922786050663,
95.419959734187131,
126.85445817782261,
1.0540625423957124,
172.20861031651307,
47.634102808208553,
75.292074924741144,
142
},
0.0,
0.0,
0.0,
0d,
0d,
149d,
310d,
4,
4,
1,
0,
600,
0,
600,
1,
310d,
149d,
72d,
UnitTypes.Density,
-1,
-1,
-1,
"d3388655-19e4-9742-82f2-f553bb01046a",
new double[8]
{
29.937922786050663,
95.419959734187131,
126.85445817782261,
1.0540625423957124,
172.20861031651307,
47.634102808208553,
75.292074924741144,
142
},
UnitTypes.Pixels,
new double[16]
{
0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d
},
UnitTypes.Pixels,
new double[16]
{
0.0d, 0.0d, 0.0d, 0.0d,
49.666666666666664d, 49.666666666666664d, 49.666666666666664d, 49.666666666666664d,
99.333333333333329d, 99.333333333333329d, 99.333333333333329d, 99.333333333333329d,
149, 149, 149, 149,
},
},
new object[]
{
true,
"cf0477a8-8f92-ac4f-9462-f78e26234851",
1,
1,
0x10,
PlacedLayerType.Raster,
new double[8]
{
37.900314592235681,
-0.32118219433001371,
185.94210608826535,
57.7076819802063,
153.32047433609358,
140.9311755779743,
5.2786828400639294,
82.902311403437977,
},
0.0,
0.0,
0.0,
0d,
0d,
721d,
1280d,
4,
4,
1,
0,
600,
0,
600,
1,
1280d,
721d,
72d,
UnitTypes.Density,
-1,
-1,
-1,
"625cc4b9-2c5f-344f-8636-03caf2bd3489",
new double[8]
{
37.900314592235681,
-0.32118219433001371,
185.94210608826535,
57.7076819802063,
153.32047433609358,
140.9311755779743,
5.2786828400639294,
82.902311403437977,
},
UnitTypes.Pixels,
new double[16]
{
0.0, 426.66666666666663, 853.33333333333326, 1280,
0.0, 426.66666666666663, 853.33333333333326, 1280,
0.0, 426.66666666666663, 853.33333333333326, 1280,
0.0, 426.66666666666663, 853.33333333333326, 1280,
},
UnitTypes.Pixels,
new double[16]
{
0.0, 0.0, 0.0, 0.0,
240.33333333333331, 240.33333333333331, 240.33333333333331, 240.33333333333331,
480.66666666666663, 480.66666666666663, 480.66666666666663, 480.66666666666663,
721, 721, 721, 721,
},
0,
0
}
};
using (PsdImage image = (PsdImage)Image.Load(sourceFilePath))
{
SoLdResource resource = null;
int index = 0;
foreach (Layer imageLayer in image.Layers)
{
foreach (var imageResource in imageLayer.Resources)
{
resource = imageResource as SoLdResource;
if (resource != null)
{
var expectedValue = (object[])expectedValues[index++];
AssertAreEqual(expectedValue[0], resource.IsCustom);
AssertAreEqual(expectedValue[1], resource.UniqueId.ToString());
AssertAreEqual(expectedValue[2], resource.PageNumber);
AssertAreEqual(expectedValue[3], resource.TotalPages);
AssertAreEqual(expectedValue[4], resource.AntiAliasPolicy);
AssertAreEqual(expectedValue[5], resource.PlacedLayerType);
AssertAreEqual(8, resource.TransformMatrix.Length);
AssertAreEqual((double[])expectedValue[6], resource.TransformMatrix);
AssertAreEqual(expectedValue[7], resource.Value);
AssertAreEqual(expectedValue[8], resource.Perspective);
AssertAreEqual(expectedValue[9], resource.PerspectiveOther);
AssertAreEqual(expectedValue[10], resource.Top);
AssertAreEqual(expectedValue[11], resource.Left);
AssertAreEqual(expectedValue[12], resource.Bottom);
AssertAreEqual(expectedValue[13], resource.Right);
AssertAreEqual(expectedValue[14], resource.UOrder);
AssertAreEqual(expectedValue[15], resource.VOrder);
AssertAreEqual(expectedValue[16], resource.Crop);
AssertAreEqual(expectedValue[17], resource.FrameStepNumerator);
AssertAreEqual(expectedValue[18], resource.FrameStepDenominator);
AssertAreEqual(expectedValue[19], resource.DurationNumerator);
AssertAreEqual(expectedValue[20], resource.DurationDenominator);
AssertAreEqual(expectedValue[21], resource.FrameCount);
AssertAreEqual(expectedValue[22], resource.Width);
AssertAreEqual(expectedValue[23], resource.Height);
AssertAreEqual(expectedValue[24], resource.Resolution);
AssertAreEqual(expectedValue[25], resource.ResolutionUnit);
AssertAreEqual(expectedValue[26], resource.Comp);
AssertAreEqual(expectedValue[27], resource.CompId);
AssertAreEqual(expectedValue[28], resource.OriginalCompId);
AssertAreEqual(expectedValue[29], resource.PlacedId.ToString());
AssertAreEqual((IEnumerable)expectedValue[30], resource.NonAffineTransformMatrix);
if (resource.IsCustom)
{
AssertAreEqual(expectedValue[31], resource.HorizontalMeshPointUnit);
AssertAreEqual((double[])expectedValue[32], resource.HorizontalMeshPoints);
AssertAreEqual(expectedValue[33], resource.VerticalMeshPointUnit);
AssertAreEqual((double[])expectedValue[34], resource.VerticalMeshPoints);
var temp = resource.VerticalMeshPoints;
resource.VerticalMeshPoints = resource.HorizontalMeshPoints;
resource.HorizontalMeshPoints = temp;
}
// Эти значения также должны быть изменены в PlLdResource (с указанным UniqueId)
// и некоторые из них должны соответствовать подчеркиванию смарт-объекта в LinkDataSource
resource.PageNumber = 2;
resource.TotalPages = 3;
resource.AntiAliasPolicy = 0;
resource.Value = 1.23456789;
resource.Perspective = 0.123456789;
resource.PerspectiveOther = 0.987654321;
resource.Top = -126;
resource.Left = -215;
resource.Bottom = 248;
resource.Right = 145;
resource.Crop = 4;
resource.FrameStepNumerator = 1;
resource.FrameStepDenominator = 601;
resource.DurationNumerator = 2;
resource.DurationDenominator = 602;
resource.FrameCount = 11;
resource.Width = 541;
resource.Height = 249;
resource.Resolution = 144;
resource.Comp = 21;
resource.CompId = 22;
resource.TransformMatrix = new double[8]
{
12.937922786050663,
19.419959734187131,
2.85445817782261,
1.0540625423957124,
7.20861031651307,
14.634102808208553,
17.292074924741144,
4
};
resource.NonAffineTransformMatrix = new double[8]
{
129.937922786050663,
195.419959734187131,
26.85445817782261,
12.0540625423957124,
72.20861031651307,
147.634102808208553,
175.292074924741144,
42
};
// Этот уникальный идентификатор должен быть изменен в ссылках, если таковые имеются
resource.PlacedId = new Guid("12345678-9abc-def0-9876-54321fecba98");
// Будьте осторожны с некоторыми параметрами: изображение может стать нечитаемым для Adobe® Photoshop®
////resource.UOrder = 6;
////ресурс.VOrder = 9;
// Не меняйте это, иначе вы не сможете использовать свободную трансформацию
// или изменить подчеркивающий смарт-объект на векторный тип
////resource.PlacedLayerType = PlacedLayerType.Vector;
// Должен быть действительный PlLdResource с этим уникальным идентификатором
////resource.UniqueId = новый Guid("98765432-10fe-cba0-1234-56789abcdef0");
break;
}
}
}
AssertAreEqual(true, resource != null);
image.Save(outputFilePath, new PsdOptions(image));
}
Смотрите также
- class SmartObjectResource
- пространство имен Aspose.PSD.FileFormats.Psd.Layers.LayerResources
- сборка Aspose.PSD