C# 用C语言更新psd文件中的文本层#

C# 用C语言更新psd文件中的文本层#,c#,layer,psd,C#,Layer,Psd,我想在C#中更新psd文件的一个特定文本层(总是相同的(用他的名字查找))。 我搜索并测试了很多不起作用的库。 最近,我在GitHub上发现了这个库: 我下载了源代码,尝试了一下,在C#中,我可以访问我的specifid层,但是,我不能更新它。 在Layer类中,有不同的属性,但我不控制它们 我不想知道是否有人可以测试它并帮助我理解图书馆。 我问过作者,但他最后一次行动是在去年 我希望你能帮助我 非常感谢。您可以试试Aspose.PSD。它支持简单的文本层编辑和按部分编辑文本层: 包含文本部分的

我想在C#中更新psd文件的一个特定文本层(总是相同的(用他的名字查找))。 我搜索并测试了很多不起作用的库。 最近,我在GitHub上发现了这个库:

我下载了源代码,尝试了一下,在C#中,我可以访问我的specifid层,但是,我不能更新它。 在Layer类中,有不同的属性,但我不控制它们

我不想知道是否有人可以测试它并帮助我理解图书馆。 我问过作者,但他最后一次行动是在去年

我希望你能帮助我


非常感谢。

您可以试试Aspose.PSD。它支持简单的文本层编辑和按部分编辑文本层:

包含文本部分的示例:

string sourceFile = dataDir + "text212.psd";
string outputFile = dataDir + "Output_text212.psd";

using (var img = (PsdImage)Image.Load(sourceFile))
{
    TextLayer textLayer = (TextLayer)img.Layers[1];
    IText textData = textLayer.TextData;
    ITextStyle defaultStyle = textData.ProducePortion().Style;
    ITextParagraph defaultParagraph = textData.ProducePortion().Paragraph;
    defaultStyle.FillColor = Color.DimGray;
    defaultStyle.FontSize = 51;

    textData.Items[1].Style.Strikethrough = true;

    ITextPortion[] newPortions = textData.ProducePortions(new string[]
    {
        "E=mc", "2\r", "Bold", "Italic\r",
        "Lowercasetext"
    },
    defaultStyle,
    defaultParagraph);

    newPortions[0].Style.Underline = true; // edit text style "E=mc"
    newPortions[1].Style.FontBaseline = FontBaseline.Superscript; // edit text style "2\r"
    newPortions[2].Style.FauxBold = true; // edit text style "Bold"
    newPortions[3].Style.FauxItalic = true; // edit text style "Italic\r"
    newPortions[3].Style.BaselineShift = -25; // edit text style "Italic\r"
    newPortions[4].Style.FontCaps = FontCaps.SmallCaps; // edit text style      "Lowercasetext"

    foreach (var newPortion in newPortions)
    {
         textData.AddPortion(newPortion);
    }

    textData.UpdateLayerData();
    img.Save(outputFile);
}

嗨,你有解决办法吗?你好,还没有。。。我正在与文章作者交谈,如果我有解决办法,我会在这里写。但是如果有人也能帮助我们。。。
string sourceFile = dataDir + "text212.psd";
string outputFile = dataDir + "Output_text212.psd";

using (var img = (PsdImage)Image.Load(sourceFile))
{
    TextLayer textLayer = (TextLayer)img.Layers[1];
    IText textData = textLayer.TextData;
    ITextStyle defaultStyle = textData.ProducePortion().Style;
    ITextParagraph defaultParagraph = textData.ProducePortion().Paragraph;
    defaultStyle.FillColor = Color.DimGray;
    defaultStyle.FontSize = 51;

    textData.Items[1].Style.Strikethrough = true;

    ITextPortion[] newPortions = textData.ProducePortions(new string[]
    {
        "E=mc", "2\r", "Bold", "Italic\r",
        "Lowercasetext"
    },
    defaultStyle,
    defaultParagraph);

    newPortions[0].Style.Underline = true; // edit text style "E=mc"
    newPortions[1].Style.FontBaseline = FontBaseline.Superscript; // edit text style "2\r"
    newPortions[2].Style.FauxBold = true; // edit text style "Bold"
    newPortions[3].Style.FauxItalic = true; // edit text style "Italic\r"
    newPortions[3].Style.BaselineShift = -25; // edit text style "Italic\r"
    newPortions[4].Style.FontCaps = FontCaps.SmallCaps; // edit text style      "Lowercasetext"

    foreach (var newPortion in newPortions)
    {
         textData.AddPortion(newPortion);
    }

    textData.UpdateLayerData();
    img.Save(outputFile);
}