如何在 PSD 中通过 .NET 更改动画框架中的层可视性

如何在 PSD 中通过 .NET 更改动画框架中的层可视性

通过手动调整每个动画框架的层不透明度是无效的,并且有错误的。

现实世界问题

设计师和营销人员经常希望一个标志、水标或效果层逐渐出现、消失或在整个动画中部分透明。

解决方案概述

通过使用 C# 代码,在所有动画框架上自动对任何层的可视性变化,这很容易集成到您的创意管道中。

原則

  • Visual Studio 2019 或以后
  • .NET 6.0 或更高版本(或 .Net Framework 4.6.2+)
  • Aspose.PSD 为 .NET 从 NuGet
  • 动画的PSD/PSB与多个框架和层
PM> Install-Package Aspose.PSD

步骤实施

步骤1:下载动画的PSD

using Aspose.PSD;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.FileFormats.Psd.Layers;
using Aspose.PSD.FileFormats.Psd.Resources;
using Aspose.PSD.ImageOptions;

string inputFile = "./input/animated_banner.psd";
string outputFile = "./output/animated_banner_opacity.psd";

var loadOptions = new PsdLoadOptions() { LoadEffectsResource = true };
PsdImage psdImage = (PsdImage)Image.Load(inputFile, loadOptions);

步骤2:访问时间线

var timeline = psdImage.Timeline;

步骤3:通过每个框架

for (int i = 0; i < timeline.Frames.Length; i++)
{
    var frame = timeline.Frames[i];
    // ...
}

步骤4:在每个框中确定目标层

假设您希望在每个框中更改第二层(指数1):

for (int i = 0; i < timeline.Frames.Length; i++)
{
    var frame = timeline.Frames[i];
    LayerState targetLayerState = frame.LayerStates[1]; // Use correct index for your layer
    // ...
}

步骤5:为每个 LayerState 设置 Opacity

for (int i = 0; i < timeline.Frames.Length; i++)
{
    var frame = timeline.Frames[i];
    LayerState targetLayerState = frame.LayerStates[1];
    targetLayerState.Opacity = 60; // Set opacity (0 = fully transparent, 100 = fully opaque)
}

步骤6:保存更新的PSD

psdImage.Save(outputFile);
psdImage.Dispose();

(所有源代码,并从 Aspose.PSD Animation Maker API 参考编辑中查看。

使用案例和应用程序

  • Fade 标志,文本,或在动画旗帜上放置
  • Watermark 所有数字权利管理框架
  • 在数十个PSD动画中自动创意反馈

共同挑战与解决方案

Wrong Layer Index: 始终确认目标层的指数;如果需要,使用层名称。

** 沒有視覺效果:** 預測您的 PSD 以確保不透明度按預期適用; 出口作為 GIF 可確認。

最佳实践

  • 在 PSD 中使用描述层名称,以便更容易自动化
  • 编写一个滚回来恢复原始不透明度,如果需要
  • 交付前总是预测结果

FAQ

**Q:我可以用不同的不透明度为每个框架吗?**A: 是 - 设置 targetLayerState.Opacity 基于框架指数或自己的逻辑。

**Q:这对PSB文件工作吗?**答:是的,Aspose.PSD 支持 PSD 和 PSB 动画。

结论

使用 Aspose.PSD for .NET,创意团队可以自动编辑动画 PSD 的时间线,节省时间和增加设计一致性。 Aspose.PSD 为 .NET API 参考 .

 中文