Aspose.PSD für .NET 23.5 - Versionshinweise
Contents
[
Hide
]
Diese Seite enthält Versionshinweise für Aspose.PSD für .NET 23.5
Schlüssel | Zusammenfassung | Kategorie |
---|---|---|
PSDNET-343 | Unterstützung des Filters: Schärfen -> Schärfen | Funktion |
PSDNET-1179 | PSD-Datei (RGB/8-Bit oder RGB/16-Bit) speichern ohne Ebenen zu 32-Bit | Funktion |
PSDNET-1408 | Implementierung der Behandlung von Pfadobjekten aus vsms- oder vmsk-Ressourcen für ShapeLayer | Funktion |
PSDNET-1508 | Hinzufügen des Einflusses von Gitterpunkten aufeinander | Funktion |
Öffentliche API-Änderungen
Hinzugefügte APIs:
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr32Resource.#ctor
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LrXxResource
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LrXxResource.#ctor
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LrXxResource.Key
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LrXxResource.Layers
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LrXxResource.Length
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LrXxResource.PsdVersion
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LrXxResource.Signature
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LrXxResource.Save(Aspose.PSD.StreamContainer,System.Int32)
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPath
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPath.IsInverted
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPath.IsNotLinked
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPath.IsDisabled
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPath.GetItems
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPath.SetItems(Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPathShape[]) /* Don’t translate code inserts, only comments */
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPathShape
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPathShape.IsClosed
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPathShape.PathOperations
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPathShape.GetItems
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPathShape.SetItems(Aspose.PSD.FileFormats.Core.VectorPaths.BezierKnotRecord[])
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IStrokeSettings
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape.#ctor(Aspose.PSD.FileFormats.Core.VectorPaths.LengthRecord,Aspose.PSD.FileFormats.Core.VectorPaths.BezierKnotRecord[])
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape.IsClosed
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape.PathOperations
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape.ShapeIndex
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape.GetItems
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape.SetItems(Aspose.PSD.FileFormats.Core.VectorPaths.BezierKnotRecord[])
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PathShape.ToVectorPathRecords
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.#ctor
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.IsFillStartsWithAllPixels
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.FillColor
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.Version
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.IsDisabled
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.IsNotLinked
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.IsInverted
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.GetItems
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPath.SetItems(Aspose.PSD.FileFormats.Psd.Layers.LayerResources.IPathShape[])
- T:Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.SharpenSmartFilter
- M:Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.SharpenSmartFilter.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.SharpenSmartFilter.#ctor(Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.DescriptorStructure)
- P:Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.SharpenSmartFilter.Name
- P:Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.SharpenSmartFilter.FilterId
- F:Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.SharpenSmartFilter.FilterType
Entfernte APIs:
- M:Aspose.PSD.FileFormats.Core.VectorPaths.VectorPathRecordFactory.#ctor
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr16Resource.Key
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr16Resource.Layers
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr16Resource.Length
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr16Resource.PsdVersion
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr16Resource.Signature
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr16Resource.Save(Aspose.PSD.StreamContainer,System.Int32)
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr32Resource.#ctor(System.Int32)
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr32Resource.Key
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr32Resource.Layers
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr32Resource.Length
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr32Resource.PsdVersion
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr32Resource.Signature
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr32Resource.Save(Aspose.PSD.StreamContainer,System.Int32)
Beispielanwendungen:
PSDNET-343. Unterstützung des Filters: Schärfen -> Schärfen
string sourceFile = "sharpen_source.psd";
string outputPsd = "sharpen_output.psd";
string outputPng = "sharpen_output.png";
void AssertAreEqual(object expected, object actual)
{
if (!object.Equals(expected, actual))
{
throw new Exception("Objekte sind nicht gleich.");
}
}
using (var image = (PsdImage)Image.Load(sourceFile))
{
SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];
// Bearbeiten von Smart-Filtern
SharpenSmartFilter sharpen = (SharpenSmartFilter)smartObj.SmartFilters.Filters[0];
// Filterwerte überprüfen
AssertAreEqual(BlendMode.Normal, sharpen.BlendMode);
AssertAreEqual(100d, sharpen.Opacity);
AssertAreEqual(true, sharpen.IsEnabled);
// Filterwerte aktualisieren
sharpen.BlendMode = BlendMode.Divide;
sharpen.Opacity = 75;
sharpen.IsEnabled = false;
// Neue Filterelemente hinzufügen
var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
filters.Add(new SharpenSmartFilter());
smartObj.SmartFilters.Filters = filters.ToArray();
// Änderungen anwenden
smartObj.SmartFilters.UpdateResourceValues();
smartObj.UpdateModifiedContent();
image.Save(outputPsd);
image.Save(outputPng, new PngOptions());
}
PSDNET-1179. PSD-Datei (RGB/8-Bit oder RGB/16-Bit) speichern ohne Ebenen zu 32-Bit
string inputFile = "input_8bit_rle.psd";
string outputPsdFile = "output_32bit.psd";
string outputImageFile32 = "output_from_32bit.png";
using (PsdImage srcImg = (PsdImage)Image.Load(inputFile))
{
PsdOptions totalOptions = new PsdOptions() { ChannelBitsCount = 32, ColorMode = ColorModes.Rgb };
srcImg.Save(outputPsdFile, totalOptions);
using (var img32 = Image.Load(outputPsdFile))
{
img32.Save(outputImageFile32, new PngOptions() { ColorType = PSD.FileFormats.Png.PngColorType.TruecolorWithAlpha });
}
}
PSDNET-1408. Implementierung der Behandlung von Pfadobjekten aus vsms- oder vmsk-Ressourcen für ShapeLayer
string srcFile = "ShapeLayerTest.psd";
string outFile = "ShapeLayerTest-out.psd";
using (PsdImage image = (PsdImage)Image.Load(srcFile, new PsdLoadOptions { LoadEffectsResource = true }))
{
Layer shapeLayer = image.Layers[1];
VectorPathDataResource vectorPathDataResource = (VectorPathDataResource)shapeLayer.Resources[1];
bool isFillStartsWithAllPixels;
List<IPathShape> shapes = GetShapesFromResource(vectorPathDataResource, out isFillStartsWithAllPixels);
// Ein Form löschen
shapes.RemoveAt(1);
// Geänderte Daten in Ressource speichern
List<VectorPathRecord> path = new List<VectorPathRecord>();
path.Add(new PathFillRuleRecord(null));
path.Add(new InitialFillRuleRecord(isFillStartsWithAllPixels));
for (ushort i = 0; i < shapes.Count; i++)
{
PathShape shape = (PathShape)shapes[i];
shape.ShapeIndex = i;
path.AddRange(shape.ToVectorPathRecords());
}
vectorPathDataResource.Paths = path.ToArray();
image.Save(outFile);
}
// Geänderte Werte in der gespeicherten Datei überprüfen
using (PsdImage image = (PsdImage)Image.Load(outFile, new PsdLoadOptions { LoadEffectsResource = true }))
{
Layer shapeLayer = image.Layers[1];
VectorPathDataResource vectorPathDataResource = (VectorPathDataResource)shapeLayer.Resources[1];
bool isFillStartsWithAllPixels;
List<IPathShape> shapes = GetShapesFromResource(vectorPathDataResource, out isFillStartsWithAllPixels);
// Die gespeicherte Datei sollte 1 Form haben
AssertAreEqual(1, shapes.Count);
}
void AssertAreEqual(object expected, object actual, string message = null)
{
if (!object.Equals(expected, actual))
{
throw new Exception(message ?? "Objekte sind nicht gleich.");
}
}
List<IPathShape> GetShapesFromResource(VectorPathDataResource vectorPathDataResource,out bool isFillStartsWithAllPixels)
{
List<IPathShape> shapes = new List<IPathShape>();
LengthRecord lengthRecord = null;
isFillStartsWithAllPixels = false;
List<BezierKnotRecord> bezierKnotRecords = new List<BezierKnotRecord>();
foreach (var pathRecord in vectorPathDataResource.Paths)
{
if (pathRecord is LengthRecord)
{
if (bezierKnotRecords.Count > 0)
{
shapes.Add(new PathShape(lengthRecord, bezierKnotRecords.ToArray()));
lengthRecord = null;
bezierKnotRecords.Clear();
}
lengthRecord = (LengthRecord)pathRecord;
}
else if (pathRecord is BezierKnotRecord)
{
bezierKnotRecords.Add((BezierKnotRecord)pathRecord);
}
else if (pathRecord is InitialFillRuleRecord)
{
InitialFillRuleRecord initialFillRuleRecord = (InitialFillRuleRecord)pathRecord;
isFillStartsWithAllPixels = initialFillRuleRecord.IsFillStartsWithAllPixels;
}
}
if (bezierKnotRecords.Count > 0)
{
shapes.Add(new PathShape(lengthRecord, bezierKnotRecords.ToArray()));
lengthRecord = null;
bezierKnotRecords.Clear();
}
return shapes;
}
PSDNET-1508. Hinzufügen des Einflusses von Gitterpunkten aufeinander
string sourceFile = "Bottom_Right.psd";
string outputFile = "output.png";
using (var image = (PsdImage)Image.Load(sourceFile, new PsdLoadOptions { AllowWarpRepaint = true }))
{
image.Save(outputFile, new PngOptions { ColorType = PngColorType.TruecolorWithAlpha});
}