Aspose.PSD for .Net是高级PSD和入门级AI文件格式操作API,允许创建和编辑Photoshop文件,并提供更新图层属性,添加水印,执行图形操作或将一种文件格式转换为另一种文件的功能,没有任何Adobe Photoshop或Adobe Illustrator依赖项。
令人兴奋的是,.NET版Aspose.PSD迎来了v20.8的最新更新!新增了如下三大新功能:
- 支持SoLdResource(智能对象层数据资源)
- 支持PlLdResource(智能对象层的放置层资源)
- 添加对象数组和单位数组结构支持:ObAr / UnFl签名
>>你可以点击这里下载Aspose.PSD for .NET v20.8测试体验
具体更新内容
key | 概述 | 类别 |
---|---|---|
PSDNET-390 | 支持PlLdResource(智能对象层的放置层资源) | 新功能 |
PSDNET-400 | 支持SoLdResource(智能对象层数据资源) | 新功能 |
PSDNET-693 | 添加对象数组和单位数组结构支持:ObAr / UnFl签名 | 新功能 |
PSDNET-600 | 修复使用CMYK ColorMode每通道16位保存修改的PSD图像的问题 | Bug修复 |
PSDNET-664 | 重点放在用Aspose.PSD保存的文件中的文本后,下划线和删除线丢失 | Bug修复 |
PSDNET-710 | 回归:Aspose.PSD 20.7.0打破了旧文件的字体大小 | Bug修复 |
新功能解析
PSDJAVA-264——支持SoLdResource(智能对象层数据资源)
// Define a local class just to keep reusable code (methods) class LocalScopeExtension { boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); } void assertAreEqual(Object actual, Object expected) { boolean areEqual = equals(actual, expected); // Compare arrays if any if (!areEqual && (actual != null && actual.getClass().isArray()) && (expected != null && expected.getClass().isArray())) { int length; // Use Reflection for accessing arrays to support arrays of primitives if ((length = Array.getLength(actual)) == Array.getLength(expected)) { for (int i = 0; i < length; i++) { if (!equals(Array.get(actual, i), Array.get(expected, i))) { break; } } areEqual = true; } } if (!areEqual) { throw new FormatException( String.format("Actual value %s are not equal to expected %s.", actual, expected)); } } } LocalScopeExtension $ = new LocalScopeExtension(); String srcPsdPath = "LayeredSmartObjects8bit2.psd"; String dstPsdPath = "LayeredSmartObjects8bit2_output.psd"; Object[][] expectedValues = new Object[][] { new Object[] { true, "76f05a3b-7523-5e42-a1bb-27f4735bffa0", 1, 1, 0x10, PlacedLayerType.Raster, new double[] { 29.937922786050663, 95.419959734187131, 126.85445817782261, 1.0540625423957124, 172.20861031651307, 47.634102808208553, 75.292074924741144, 142 }, 0.0, 0.0, 0.0, 0d, 0d, 149d, 310d, 4, 4, 1, 0, 600, 0, 600, 1, 310d, 149d, 72d, UnitTypes.Density, -1, -1, -1, "d3388655-19e4-9742-82f2-f553bb01046a", new double[] { 29.937922786050663, 95.419959734187131, 126.85445817782261, 1.0540625423957124, 172.20861031651307, 47.634102808208553, 75.292074924741144, 142 }, UnitTypes.Pixels, new double[] { 0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d, 0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d, 0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d, 0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d }, UnitTypes.Pixels, new double[] { 0.0d, 0.0d, 0.0d, 0.0d, 49.666666666666664d, 49.666666666666664d, 49.666666666666664d, 49.666666666666664d, 99.333333333333329d, 99.333333333333329d, 99.333333333333329d, 99.333333333333329d, 149, 149, 149, 149, }, }, new Object[