Aspose.PSD for .NET 24.2 - 发行说明
Contents
[
Hide
]
本页面包含 Aspose.PSD for .NET 24.2 的发布说明
关键 | 摘要 | 类别 |
---|---|---|
PSDNET-1503 | 处理 PatternFillSettings 的 Angle 属性 | 功能 |
PSDNET-1719 | 支持对 TextLayer 进行垂直和水平缩放 | 功能 |
PSDNET-1783 | [AI 格式] 在基于 PDF 的 AI 格式中实现正确的背景渲染 | 功能 |
PSDNET-1611 | 更改 Distort 机制中的 warp | 增强功能 |
PSDNET-1802 | 加快 warp 的速度 | 增强功能 |
PSDNET-995 | 打开文档时出现“图像加载失败。”异常 | 错误 |
PSDNET-1491 | 修复保存具有 Stroke Pattern 的 psd 文件 | 错误 |
PSDNET-1642 | 当我们使用 ReplaceContents 时,智能对象中的文本样式不正确 | 错误 |
PSDNET-1884 | [AI 格式] 修复 AI 文件中的 Cubic Bezier 渲染 | 错误 |
公共 API 更改
新增的 API:
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PtFlResource.Angle
已移除的 API:
- 无
使用示例:
PSDNET-1503. 处理 PatternFillSettings 的 Angle 属性
string sourceFile = Path.Combine(baseFolder, "PatternFillLayerWide_0.psd");
string outputFile = Path.Combine(outputFolder, "PatternFillLayerWide_0_output.psd");
using (PsdImage image = (PsdImage)Image.Load(sourceFile, new PsdLoadOptions { LoadEffectsResource = true }))
{
FillLayer fillLayer = (FillLayer)image.Layers[1];
PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings;
fillSettings.Angle = 70;
fillLayer.Update();
image.Save(outputFile, new PsdOptions());
}
using (PsdImage image = (PsdImage)Image.Load(outputFile, new PsdLoadOptions { LoadEffectsResource = true }))
{
FillLayer fillLayer = (FillLayer)image.Layers[1];
PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings;
Assert.AreEqual(70, fillSettings.Angle);
}
PSDNET-1719. 支持对 TextLayer 进行垂直和水平缩放
string src = Path.Combine(baseFolder, "1719_src.psd");
string output = Path.Combine(outputFolder, "out_1719.png");
using (var psdImage = (PsdImage)Image.Load(src))
{
psdImage.Save(output, new PngOptions());
}
PSDNET-1783. [AI 格式] 在基于 PDF 的 AI 格式中实现正确的背景渲染
string sourceFile = Path.Combine(baseFolder, "pineapples.ai");
string outputFilePath = Path.Combine(outputFolder, "pineapples.png");
using (AiImage image = (AiImage)Image.Load(sourceFile))
{
image.Save(outputFilePath, new PngOptions());
}
PSDNET-995. 打开文档时出现“图像加载失败。”异常
string sourceFile1 = Path.Combine(baseFolder, "PRODUCT.ai");
string outputFile1 = Path.Combine(outputFolder, "PRODUCT.png");
using (AiImage image = (AiImage)Image.Load(sourceFile1))
{
image.Save(outputFile1, new PngOptions());
}
string sourceFile2 = Path.Combine(baseFolder, "Dolota.ai");
string outputFile2 = Path.Combine(outputFolder, "Dolota.png");
using (AiImage image = (AiImage)Image.Load(sourceFile2))
{
image.Save(outputFile2, new PngOptions());
}
string sourceFile3 = Path.Combine(baseFolder, "ARS_novelty_2108_out_01(1).ai");
string outputFile3 = Path.Combine(outputFolder, "ARS_novelty_2108_out_01(1).png");
using (AiImage image = (AiImage)Image.Load(sourceFile3))
{
image.Save(outputFile3, new PngOptions());
}
string sourceFile4 = Path.Combine(baseFolder, "bit_gear.ai");
string outputFile4 = Path.Combine(outputFolder, "bit_gear.png");
using (AiImage image = (AiImage)Image.Load(sourceFile4))
{
image.Save(outputFile4, new PngOptions());
}
string sourceFile5 = Path.Combine(baseFolder, "test.ai");
string outputFile5 = Path.Combine(outputFolder, "test.png");
using (AiImage image = (AiImage)Image.Load(sourceFile5))
{
image.Save(outputFile5, new PngOptions());
}
PSDNET-1491. 修复保存具有 Stroke Pattern 的 psd 文件
string sourceFile = Path.Combine(baseFolder, "StrokeShapePattern.psd");
string outputFile = Path.Combine(outputFolder, "StrokeShapePattern_output.psd");
Rectangle newPatternBounds = new Rectangle(0, 0, 4, 4);
Guid guid = Guid.NewGuid();
string newPatternName = "$$$/Presets/Patterns/HorizontalLine1=Horizontal Line 9\0";
int[] newPattern = new int[]
{
Color.Aqua.ToArgb(), Color.Red.ToArgb(), Color.Red.ToArgb(), Color.Aqua.ToArgb(),
Color.Aqua.ToArgb(), Color.White.ToArgb(), Color.White.ToArgb(), Color.Aqua.ToArgb(),
Color.Aqua.ToArgb(), Color.White.ToArgb(), Color.White.ToArgb(), Color.Aqua.ToArgb(),
Color.Aqua.ToArgb(), Color.Red.ToArgb(), Color.Red.ToArgb(), Color.Aqua.ToArgb(),
};
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
ShapeLayer shapeLayer = (ShapeLayer)image.Layers[1];
PatternFillSettings strokeInternalFillSettings = (PatternFillSettings)shapeLayer.Fill;
PattResource pattResource;
foreach (var globalLayerResource in image.GlobalLayerResources)
{
if (globalLayerResource is PattResource)
{
pattResource = (PattResource)globalLayerResource;
PattResourceData patternItem = pattResource.Patterns[0];
patternItem.PatternId = guid.ToString();
patternItem.Name = newPatternName;
patternItem.SetPattern(newPattern, newPatternBounds);
break;
}
}
strokeInternalFillSettings.PatternName = newPatternName;
strokeInternalFillSettings.PatternId = guid.ToString() + "\0";
shapeLayer.Update();
image.Save(outputFile);
}
// 检查更改后的数据
using (PsdImage image = (PsdImage)Image.Load(outputFile))
{
ShapeLayer shapeLayer = (ShapeLayer)image.Layers[1];
PatternFillSettings strokeInternalFillSettings = (PatternFillSettings)shapeLayer.Fill;
Assert.AreEqual(guid.ToString().ToUpper(), strokeInternalFillSettings.PatternId);
Assert.AreEqual(newPatternName, strokeInternalFillSettings.PatternName + "\0");
}
PSDNET-1642. 当我们使用 ReplaceContents 时,智能对象中的文本样式不正确
string inputFile = Path.Combine(baseFolder, "source.psd");
string output2 = Path.Combine(outputFolder, "output.png");
PsdLoadOptions psdLoadOptions = new PsdLoadOptions();
psdLoadOptions.LoadEffectsResource = true;
using (PsdImage psdImage = (PsdImage)Image.Load(inputFile, psdLoadOptions))
{
SmartObjectLayer smartObject = (SmartObjectLayer)psdImage.Layers[1];
using (PsdImage smartObjectImage = (PsdImage)smartObject.LoadContents(psdLoadOptions))
{
smartObject.ReplaceContents(smartObjectImage);
}
psdImage.Save(output2, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
}
PSDNET-1884. [AI 格式] 修复 AI 文件中的 Cubic Bezier 渲染
string sourceFile = Path.Combine(baseFolder, "Typography.ai");
string outputFilePath = Path.Combine(outputFolder, "Typography.png");
using (AiImage image = (AiImage)Image.Load(sourceFile))
{
image.Save(outputFilePath, new PngOptions());
}
PSDNET-1611. 更改 Distort 机制中的 warp
string sourceFile = Path.Combine(baseFolder, "crow_grid.psd");
string outputFile = Path.Combine(outputFolder, "export.png");
var opt = new PsdLoadOptions()
{
LoadEffectsResource = true,
AllowWarpRepaint = true
};
using (PsdImage img = (PsdImage)Image.Load(sourceFile, opt))
{
img.Save(outputFile, new PngOptions() { CompressionLevel = 9, ColorType = PngColorType.TruecolorWithAlpha });
}
PSDNET-1802. 加快 warp 的速度
string sourceFile = Path.Combine(baseFolder, "output.psd");
string outputFile = Path.Combine(outputFolder, "export.png");
var opt = new PsdLoadOptions()
{
LoadEffectsResource = true,
AllowWarpRepaint = true
};
var sw = new Stopwatch();
sw.Start();
using (PsdImage img = (PsdImage)Image.Load(sourceFile, opt))
{
img.Save(outputFile, new PngOptions() { CompressionLevel = 9, ColorType = PngColorType.TruecolorWithAlpha });
}
sw.Stop();
int timeInSec = (int)sw.Elapsed.TotalMilliseconds;
if (timeInSec > 100000)
{
throw new Exception("处理时间太长");
}