PSD文件处理控件Aspose.PSD功能演示:在Photoshop文档中添加填充层

用于.NET API的Aspose.PSD提供了许多与PSD,PSB,AI和许多其他文件格式一起使用的功能。让我们探讨以下与在PSD文件中添加图层有关的用例。

用于.NET API的Aspose.PSD提供了许多与PSD,PSB,AI和许多其他文件格式一起使用的功能。让我们探讨以下与在PSD文件中添加图层有关的用例:

  • 使用C#在运行时在PSD文件中添加填充层
  • 使用C#在PSD文件中添加现有填充层
    • 使用图案填充添加图层
    • 使用渐变填充添加图层
    • 使用颜色填充添加图层

Aspose.PSD for .NET已升级至V20.5,如果你还没有用过Aspose.PSD可以点击这里下载最新版测试。


使用C#在运行时在Photoshop文档中添加填充层

用于.NET API的Aspose.PSD支持在PSD文件中创建填充层。您不一定需要从现有文件加载图层。只需按照以下步骤在运行时在PSD文件中添加填充层:

  • 用页面尺寸初始化PsdImage类的实例
  • 创建FillLayer类的实例
  • 设置图层的显示名称
  • 将图层添加到图像

以下代码段显示了如何使用C#在Photoshop中添加填充层:

string outputFilePath = Path.Combine(dataDir, "output.psd");using (var image = new PsdImage(100, 100)){    FillLayer colorFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Color);    colorFillLayer.DisplayName = "Color Fill Layer";    image.AddLayer(colorFillLayer);    FillLayer gradientFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Gradient);    gradientFillLayer.DisplayName = "Gradient Fill Layer";    image.AddLayer(gradientFillLayer);    FillLayer patternFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Pattern);    patternFillLayer.DisplayName = "Pattern Fill Layer";    patternFillLayer.Opacity = 50;    image.AddLayer(patternFillLayer);    image.Save(outputFilePath);}

此代码段将生成指定尺寸的PSD文件,其中以下屏幕截图显示了三个填充层的名称,这些名称与上述C#代码所设置的完全相同:

PSD文件处理控件Aspose.PSD功能演示:在Photoshop文档中添加填充层

使用C#在PSD文件中添加现有填充层

让我们看看如何从现有的Photoshop文件中添加图层。以下是添加现有填充层的可能性:

使用C#添加带有图案填充的图层

图案填充可能具有图像,线条或阴影来填充该区域。您需要按照以下步骤在PSD图像中添加带有Patten Fill的图层:

  • 加载源PSD文件
  • 遍历所有图层并检查FillLayer
  • 为图层设置不同的设置
  • 保存图像

下面的代码段显示了如何使用C#使用模式填充添加填充层:

// Add support of Fill layers: Patternstring sourceFileName = dataDir + "PatternFillLayer.psd";string exportPath = dataDir + "PatternFillLayer_Edited.psd";double tolerance = 0.0001;var im = (PsdImage)Image.Load(sourceFileName);using (im){    foreach (var layer in im.Layers)    {        if (layer is FillLayer)        {            FillLayer fillLayer = (FillLayer)layer;            PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings;            if (fillSettings.HorizontalOffset != -46 ||                fillSettings.VerticalOffset != -45 ||                fillSettings.PatternId != "a6818df2-7532-494e-9615-8fdd6b7f38e5" ||                fillSettings.PatternName != "$$$/Presets/Patterns/OpticalSquares=Optical Squares" ||                fillSettings.AlignWithLayer != true ||                fillSettings.Linked != true ||                fillSettings.PatternHeight != 64 ||                fillSettings.PatternWidth != 64 ||                fillSettings.PatternData.Length != 4096 ||                Math.Abs(fillSettings.Scale - 50) > tolerance)            {                throw new Exception("PSD Image was read wrong");            }            // Editing            fillSettings.Scale = 300;            fillSettings.HorizontalOffset = 2;            fillSettings.VerticalOffset = -20;            fillSettings.PatternData = new int[]            {           Color.Red.ToArgb(), Color.Blue.ToArgb(),  Color.Blue.ToArgb(),           Color.Blue.ToArgb(), Color.Red.ToArgb(),  Color.Blue.ToArgb(),           Color.Blue.ToArgb(), Color.Blue.ToArgb(),  Color.Red.ToArgb()            };            fillSettings.PatternHeight = 3;            fillSettings.PatternWidth = 3;            fillSettings.AlignWithLayer = false;            fillSettings.Linked = false;            fillSettings.PatternId = Guid.NewGuid().ToString();            fillLayer.Update();            break;        }    }    im.Save(exportPath);}
使用C#添加带有渐变填充的图层

可以使用渐变填充在Photoshop文档中填充图层。用于.NET API的Aspose.PSD支持以下类型的渐变填充:

  • 线性
  • 菱形
  • 径向
  • 折线

以下是添加带有渐变填充的图层的步骤:

  • 加载源PSD文件
  • 初始化GradientType的集合
  • 声明GradientFillSettings类的实例
  • 指定GradientType并更新图层
  • 保存PSD图像

下面的代码段基于这些步骤,并显示了如何使用C#在Photoshop文档中添加GradientFill层:

string fileName = dataDir + "FillLayerGradient.psd";GradientType[] gradientTypes = new[]{    GradientType.Linear, GradientType.Radial, GradientType.Angle, GradientType.Reflected, GradientType.Diamond};using (var image = Image.Load(fileName)){    PsdImage psdImage = (PsdImage)image;    FillLayer fillLayer = (FillLayer)psdImage.Layers[0];    GradientFillSettings fillSettings = (GradientFillSettings)fillLayer.FillSettings;    foreach (var gradientType in gradientTypes)    {        fillSettings.GradientType = gradientType;        fillLayer.Update();        psdImage.Save(fileName + "_" + gradientType.ToString() + ".png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });    }}

此代码段将生成五个不同的文件,每个文件在PSD文件的层中填充不同的渐变。

使用C#添加带有颜色填充的图层

可以在Photoshop文档(PSD文件)中添加带有颜色填充的图层。请按照以下步骤添加或创建带有颜色填充的填充层:

  • 加载源PSD图像
  • 检查所有图层并找到FillLayer
  • 检查所有图层并找到FillLayer
  • 设置填充颜色并更新图层
  • 保存PSD图像

以下代码段基于上述步骤,这些步骤显示了如何使用C#在Photoshop文档中添加填充层:

string sourceFileName = dataDir + "ColorFillLayer.psd";string exportPath = dataDir + "ColorFillLayer_output.psd";var im = (PsdImage)Image.Load(sourceFileName);using (im){    foreach (var layer in im.Layers)    {        if (layer is FillLayer)        {            var fillLayer = (FillLayer)layer;            if (fillLayer.FillSettings.FillType != FillType.Color)            {                throw new Exception("Wrong Fill Layer");            }            var settings = (IColorFillSettings)fillLayer.FillSettings;            settings.Color = Color.Red;            fillLayer.Update();            im.Save(exportPath);            break;        }    }}


还想要更多吗可以点击阅读【2019 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询
标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月7日
下一篇 2020年5月7日

相关推荐

发表回复

登录后才能评论