Class GdFlResource
GdFlResource class
Класс GdFlResource. Этот ресурс содержит информацию о смешивании отсеченного элемента.
public class GdFlResource : FillLayerResource
Конструкторы
Характеристики
Имя | Описание |
---|
AlignWithLayer { get; set; } | Получает или задает значение, указывающее, следует ли [выравнивать со слоем]. |
Angle { get; set; } | Получает или задает угол. |
Color { get; set; } | Получает цвет RGB. |
ColorPoints { get; set; } | Получает точки цвета. |
Dither { get; set; } | Получает или задает значение, указывающее, является ли этоGdFlResource дизеринг. |
GradientInterval { get; set; } | Получает или задает интервал градиента. |
GradientName { get; set; } | Получает или задает имя градиента. |
GradientType { get; set; } | Получает или задает тип градиента. |
HorizontalOffset { get; set; } | Получает или задает смещение по горизонтали. |
override Key { get; } | Получает ключ ресурса слоя. |
override Length { get; } | Получает длину ресурса слоя в байтах. |
override PsdVersion { get; } | Получает минимальную версию psd, необходимую для ресурса слоя. 0 означает отсутствие ограничений. |
Reverse { get; set; } | Получает или задает значение, указывающее, является ли этоGdFlResource является обратным. |
Scale { get; set; } | Получает или задает масштаб. |
override Signature { get; } | Получает подпись ресурса слоя. |
TransparencyPoints { get; set; } | Получает очки прозрачности. |
VerticalOffset { get; set; } | Получает или задает вертикальное смещение. |
Методы
Имя | Описание |
---|
override Save(StreamContainer, int) | Сохраняет ресурс в указанный контейнер потока. |
override ToString() | ВозвращаетString который представляет этот экземпляр. |
Поля
Имя | Описание |
---|
const TypeToolKey | Информационный ключ типа инструмента. |
Примеры
В следующем примере демонстрируется поддержка загрузки ресурсов GdFlResource.
[C#]
string sourceFileName = "ComplexGradientFillLayer.psd";
string exportPath = "ComplexGradientFillLayer_after.psd";
var im = (PsdImage)Image.Load(sourceFileName);
using (im)
{
foreach (var layer in im.Layers)
{
if (layer is FillLayer)
{
var fillLayer = (FillLayer)layer;
var resources = fillLayer.Resources;
foreach (var res in resources)
{
if (res is GdFlResource)
{
// Чтение
var resource = (GdFlResource)res;
if (resource.AlignWithLayer != false ||
(Math.Abs(resource.Angle - 45.0) > 0.001) ||
resource.Dither != true ||
resource.Reverse != false ||
resource.Color != Color.Empty ||
Math.Abs(resource.HorizontalOffset - (-39)) > 0.001 ||
Math.Abs(resource.VerticalOffset - (-5)) > 0.001 ||
resource.TransparencyPoints.Length != 3 ||
resource.ColorPoints.Length != 2)
{
throw new Exception("Resource Parameters were read wrong");
}
var transparencyPoints = resource.TransparencyPoints;
if (Math.Abs(100.0 - transparencyPoints[0].Opacity) > 0.25 ||
transparencyPoints[0].Location != 0 ||
transparencyPoints[0].MedianPointLocation != 50 ||
Math.Abs(50.0 - transparencyPoints[1].Opacity) > 0.25 ||
transparencyPoints[1].Location != 2048 ||
transparencyPoints[1].MedianPointLocation != 50 ||
Math.Abs(100.0 - transparencyPoints[2].Opacity) > 0.25 ||
transparencyPoints[2].Location != 4096 ||
transparencyPoints[2].MedianPointLocation != 50)
{
throw new Exception("Gradient Transparency Points were read Wrong");
}
var colorPoints = resource.ColorPoints;
if (colorPoints[0].Color != Color.FromArgb(203, 64, 140) ||
colorPoints[0].Location != 0 ||
colorPoints[0].MedianPointLocation != 50 ||
colorPoints[1].Color != Color.FromArgb(203, 0, 0) ||
colorPoints[1].Location != 4096 ||
colorPoints[1].MedianPointLocation != 50)
{
throw new Exception("Gradient Color Points were read Wrong");
}
// Редактирование
resource.Angle = 30.0;
resource.Dither = false;
resource.AlignWithLayer = true;
resource.Reverse = true;
resource.HorizontalOffset = 25;
resource.VerticalOffset = -15;
var newColorPoints = new List<IGradientColorPoint>(resource.ColorPoints);
var
newTransparencyPoints = new
List<IGradientTransparencyPoint>(resource.TransparencyPoints);
newColorPoints.Add(new GradientColorPoint()
{
Color = Color.Violet,
Location = 4096,
MedianPointLocation = 75
});
colorPoints[1].Location = 3000;
newTransparencyPoints.Add(new GradientTransparencyPoint()
{
Opacity = 80.0,
Location = 4096,
MedianPointLocation = 25
});
transparencyPoints[2].Location = 3000;
resource.ColorPoints = newColorPoints.ToArray();
resource.TransparencyPoints = newTransparencyPoints.ToArray();
im.Save(exportPath);
}
break;
}
break;
}
}
}
Смотрите также