Aspose.psd textlayer 调用方法 updatetext 时,无法更新字体大小

你好
当我在调用 文本图层 textLayer.UpdateText(“Abcdefghihijkk”,(float)248.3,color) 方法时,试图去修改文本图层里面的内容,字体大小,颜色等相关信息时,最后的结果是文本内容和字体颜色更新成功了,但是字体的大小没有成功。
上面的案例是我试图将文本 内容字体大小修改为 248.3,但是结果是见下图
Dingtalk_20240913141215.jpg (164.1 KB)
PSDFILE.zip (319.9 KB)

@yuluojie
我们已在内部问题跟踪系统中打开以下新票证,并将根据 Free Support Policies 中提到的条款提供修复。

问题 ID:PSDNET-2178

如果您需要优先支持,以及直接联系我们的付费支持管理团队,您可以获取 Paid Support Services

@yuluojie ,您描述的使用 textLayer.UpdateText(…) 时无法正确更新字体大小的问题可能是由于文本层的变换矩阵影响了字体大小。您设置的字体大小需要根据当前应用于文本层的变换进行规范化。

我在下面提供了一个示例代码片段,演示了如何正确更新文本内容、颜色和字体大小。在此代码中,目标字体大小是通过考虑变换矩阵来调整的:

string dir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string src = Path.Combine(dir, "before_save.psd");
string output = Path.Combine(dir, "out_before_save.psd");

using (var psdImage = (PsdImage)Image.Load(src))
{
    var textLayer = (TextLayer)psdImage.Layers[0];
    
    // Normalization of the font size by layer transform matrix.
    float targetFontSize = 248.3f;
    float normalizedTargetFontSize = targetFontSize / (float)textLayer.TransformMatrix[3];
    
    textLayer.UpdateText("Updated text", normalizedTargetFontSize, Color.Red);
    
    psdImage.Save(output);
}

如果您需要进一步的帮助或这解决了您的问题,请告诉我。