你好,我这边设置字体 【Roboto-Regular】更新时,导出的图片里面文本部分有阴影,这个是怎么回事?
操作系统:window 10
aspose.psd 版本:25.3.0
效果详见附件
sample.jpg (24.3 KB)
sample.psd.zip (30.9 KB)
代码如下:
var psdImage = (PsdImage)Image.Load(Path.Combine(@“d:\temp”, “sample.psd”),
new PsdLoadOptions() { LoadEffectsResource = true});
foreach (var layer in psdImage.Layers)
{
if (layer.DisplayName == “S1-Text1 Input 1”)
{
var textLayer = (TextLayer)layer;
textLayer.UpdateText("ABCDEFG");
foreach (var portion in textLayer.TextData.Items)
{
portion.Style.FontName = "Roboto-Regular";
}
textLayer.TextData.UpdateLayerData();
}
}
psdImage.Save(@“d:\temp\sample.jpg”, new JpegOptions { Quality = 100, CompressionType = JpegCompressionMode.Baseline });
psdImage.Dispose();
@yuluojie
你好!关于你提到的在导出图片时文本部分出现阴影的问题,这可能与文本图层的效果设置有关。Aspose.PSD支持多种图层效果,包括阴影效果,这可能会影响文本的外观。
如果你在更新文本时没有特别设置阴影效果,可能是因为该图层之前已经应用了阴影效果。你可以检查并调整图层的效果设置,确保没有不必要的阴影效果被应用。
以下是一个示例代码,展示如何更新文本并确保没有阴影效果:
var psdImage = (PsdImage)Image.Load(Path.Combine(@"d:\temp", "sample.psd"),
new PsdLoadOptions() { LoadEffectsResource = true });
foreach (var layer in psdImage.Layers)
{
if (layer.DisplayName == "S1-Text1 Input 1")
{
var textLayer = (TextLayer)layer;
textLayer.UpdateText("ABCDEFG");
foreach (var portion in textLayer.TextData.Items)
{
portion.Style.FontName = "Roboto-Regular";
// 确保没有阴影效果
portion.Style.ShadowEffect = null; // 或者根据需要设置为默认值
}
textLayer.TextData.UpdateLayerData();
}
}
psdImage.Save(@"d:\temp\sample.jpg", new JpegOptions { Quality = 100, CompressionType = JpegCompressionMode.Baseline });
psdImage.Dispose();
在这个示例中,确保在更新文本样式时检查并移除任何阴影效果。这样可以避免在导出时出现阴影。
如果问题依然存在,建议检查原始PSD文件中是否有其他图层效果影响文本的显示,或者尝试使用不同的字体设置进行测试。
希望这些信息对你有所帮助!如果有其他问题,请随时询问。
@yuluojie
请详细说明一下。您使用的 .NET 版本是什么(NET Framework、NET 7+ 等)。您的电脑上安装了 Roboto 字体吗?
目前我无法重现这个问题。