Note sulla release di Aspose.PSD per .NET 20.4
Contents
[
Hide
]
Questa pagina contiene le note sulla release di Aspose.PSD per .NET 20.4
Chiave | Sommario | Categoria |
---|---|---|
PSDNET-567 | Supporto del’risorsa ‘Dati di origine vettoriale’ | Feature |
PSDNET-373 | Supporto dell’risorsa lclrResource (impostazione del colore del foglio) | Feature |
PSDNET-563 | Supporto delle proprietà dei dati LengthRecord (operazioni sui percorsi (operazioni booleane), indice della forma nel livello, conteggio dei record di nodi di Bezier) | Feature |
PSDNET-425 | Supporto del colore di sfondo dell’risorsa della sezione immagine n. 1010 | Feature |
PSDNET-530 | Aggiunta di livelli di riempimento in tempo di esecuzione | Feature |
PSDNET-424 | Supporto dell’risorsa della sezione immagine n. 1009 con informazioni sui bordi | Feature |
PSDNET-592 | Supporto dei livelli nei file di formato AI | Feature |
PSDNET-256 | Supporto lettura e modifica dell’effetto di sovrapposizione gradiente del livello | Feature |
PSDNET-257 | Rendering dell’effetto di sovrapposizione gradiente del livello | Feature |
PSDNET-585 | I cambiamenti della proprietà BlendMode di GradientOverlayEffect non vengono visualizzati in Photoshop | Bug |
PSDNET-561 | Correzione del salvataggio dell’immagine PSD con ColorMode scala di grigi e 16 bit per canale nel formato PSD scala di grigi | Bug |
PSDNET-560 | Correzione del salvataggio dell’immagine PSD con ColorMode scala di grigi e 16 bit per canale nel formato PNG | Bug |
Modifiche all’API pubblica
API aggiunte:
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.Name
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.IsTemplate
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.IsLocked
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.IsShown
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.IsPrinted
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.IsPreview
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.IsImagesDimmed
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.DimValue
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.ColorNumber
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.Red
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.Green
- P:Aspose.PSD.FileFormats.Ai.AiLayerSection.Blue
- M:Aspose.PSD.FileFormats.Psd.Layers.FillLayers.FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType)
- T:Aspose.PSD.FileFormats.Psd.Resources.BackgroundColorResource
- M:Aspose.PSD.FileFormats.Psd.Resources.BackgroundColorResource.#ctor
- P:Aspose.PSD.FileFormats.Psd.Resources.BackgroundColorResource.DataSize
- P:Aspose.PSD.FileFormats.Psd.Resources.BackgroundColorResource.MinimalVersion
- P:Aspose.PSD.FileFormats.Psd.Resources.BackgroundColorResource.Color
- T:Aspose.PSD.FileFormats.Psd.Resources.BorderInformationResource
- M:Aspose.PSD.FileFormats.Psd.Resources.BorderInformationResource.#ctor
- P:Aspose.PSD.FileFormats.Psd.Resources.BorderInformationResource.DataSize
- P:Aspose.PSD.FileFormats.Psd.Resources.BorderInformationResource.MinimalVersion
- P:Aspose.PSD.FileFormats.Psd.Resources.BorderInformationResource.Width
- P:Aspose.PSD.FileFormats.Psd.Resources.BorderInformationResource.Unit
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.BezierKnotRecord.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.InitialFillRuleRecord.#ctor(System.Boolean)
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.LengthRecord.#ctor
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.LengthRecord.BezierKnotRecordsCount
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.LengthRecord.PathOperations
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.LengthRecord.ShapeIndex
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.Save(Aspose.PSD.StreamContainer,System.Int32)
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.TypeToolKey
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.Signature
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.Key
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.PsdVersion
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.Version
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.Length
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VogkResource.ShapeOriginSettings
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.VectorShapeOriginSettings
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.VectorShapeOriginSettings.#ctor(System.Boolean,System.Int32)
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.VectorShapeOriginSettings.IsShapeInvalidated
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.VectorShapeOriginSettings.OriginIndex
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.PathOperations
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.PathOperations.ExcludeOverlappingShapes
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.PathOperations.CombineShapes
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.PathOperations.SubtractFrontShape
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPaths.PathOperations.IntersectShapeAreas
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VectorPathDataResource.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VsmsResource.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.VmskResource.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.FillSettings.GradientColorPoint.#ctor(Aspose.PSD.Color,System.Int32,System.Int32)
API rimosse:
- Nessuna
Esempi di utilizzo:
PSDNET-567. Supporto dell’risorsa ‘Dati di origine vettoriale’
// Supporto di VogkResource
static void EsempioDiSupportoDiVogkResource()
{
string nomeFile = "RisorseDiOrigineVettoriale.psd";
string nomeFileOut = "out_RisorseDiOrigineVettoriale_.psd";
using (var psdImmagine = (PsdImmagine)Immagine.Carica(nomeFile))
{
var risorsa = OttieniVogkResource(psdImmagine);
// Lettura
if (risorsa.ShapeOriginSettings.Length != 1 ||
!risorsa.ShapeOriginSettings[0].IsShapeInvalidated ||
risorsa.ShapeOriginSettings[0].OriginIndex != 0)
{
lanciare nuovo Eccezione("VogkResource è stato letto in modo errato.");
}
// Modifica
risorsa.ShapeOriginSettings = nuovo[]
{
risorsa.ShapeOriginSettings[0],
nuovo VectorShapeOriginSettings(true, 1)
};
psdImmagine.Salva(nomeFileOut);
}
}
static VogkResource OttieniVogkResource(PsdImmagine immagine)
{
var layer = immagine.Layers[1];
VogkResource risorsa = null;
var risorse = layer.Risorse;
per int i = 0; i < risorse.Length; i++)
{
if (risorse[i] è VogkResource)
{
risorsa = (VogkResource)risorse[i];
pausa;
}
}
se (risorsa == null)
{
lanciare nuovo Eccezione("Risorsa Vogk non trovata.");
}
tornare risorsa;
}
PSDNET-373. Supporto dell’risorsa lclrResource (impostazione del colore del foglio)
static void ControllaColoriFoglioEInverti(ColoriEvidenziazioneFoglio[] coloriFoglio, PsdImmagine immagine)
{
int numeroLivelli = immagine.Layers.Length;
per (int indiceLivello = 0; indiceLivello < numeroLivelli; indiceLivello++)
{
Livello livello = immagine.Layers[indiceLivello];
LayerResource[] risorse = livello.Risorse;
per ogni (LayerResource risorsaLivello in risorse)
{
// La risorsa lclr è sempre presente nell'elenco delle risorse dei file psd.
LclrResource risorsa = risorsaLivello come LclrResource;
se (risorsa != null)
{
se (risorsa.Color != coloriFoglio[indiceLivello])
{
lanciare nuovo Eccezione("Il colore del foglio è stato letto in modo errato");
}
// Inversione dei colori degli stili del foglio. Impostare del colore di evidenziazione del livello.
risorsa.Color = coloriFoglio[numeroLivelli - indiceLivello - 1];
pausa;
}
}
}
}
string percorsoFileSorgente = "TuttiIColoriRisorsaLclr.psd";
string percorsoFileOutput = "TuttiIColoriRisorsaLclrInvertiti.psd";
// Nel file i colori dell'evidenziazione dei livelli sono in questo ordine
ColoriEvidenziazioneFoglio[] coloriFoglio = nuovo ColoriEvidenziazioneFoglio[] {
ColoriEvidenziazioneFoglio.Rosso,
ColoriEvidenziazioneFoglio.Arancione,
ColoriEvidenziazioneFoglio.Giallo,
ColoriEvidenziazioneFoglio.Verde,
ColoriEvidenziazioneFoglio.Blu,
ColoriEvidenziazioneFoglio.Viola,
ColoriEvidenziazioneFoglio.Grizz,
ColoriEvidenziazioneFoglio.NessunColore
};
// Il colore del foglio del livello viene utilizzato per evidenziare visualmente i livelli.
// Ad esempio è possibile aggiornare alcuni livelli in un file PSD e poi evidenziare con un colore il livello su cui si desidera attirare l'attenzione.
using (PsdImmagine immagine = (PsdImmagine)Immagine.Carica(percorsoFileSorgente))
{
ControllaColoriFoglioEInverti(coloriFoglio, immagine);
immagine.Salva(percorsoFileOutput, nuovo PsdOpzioni());
}
usando (PsdImmagine immagine = (PsdImmagine)Immagine.Carica(percorsoFileOutput))
{
// I colori dovrebbero essere invertiti
Array.Reverse(coloriFoglio);
ControllaColoriFoglioEInverti(coloriFoglio, immagine);
}
PSDNET-563. Supporto delle proprietà dei dati LengthRecord (operazioni sui percorsi (operazioni booleane), indice della forma nel livello, conteggio dei record di nodi di Bezier)
string nomeFile = "PercorsoOperazioniForma.psd";
using (var im = (PsdImmagine)Immagine.Carica(nomeFile))
{
VsmsResource risorsa = null;
per ogni (var risorsaLivello in im.Layers[1].Risorse)
{
se (risorsaLivello è VsmsResource)
{
risorsa = (VsmsResource)risorsaLivello;
pausa;
}
}
LengthRecord lengthRecord0 = (LengthRecord)risorsa.Paths[2];
LengthRecord lengthRecord1 = (LengthRecord)risorsa.Paths[7];
LengthRecord lengthRecord2 = (LengthRecord)risorsa.Paths[11];
// Qui stiamo cambiando il modo di combinare le forme.
lengthRecord0.PathOperations = PathOperations.ExcludeOverlappingShapes;
lengthRecord1.PathOperations = PathOperations.IntersectShapeAreas;
lengthRecord2.PathOperations = PathOperations.SubtractFrontShape;
im.Salva("out_" + nomeFile);
}
PSDNET-425. Supporto del colore di sfondo dell’risorsa della sezione immagine n. 1010
string percorsoFileSorgente = "input.psd";
string percorsoFileOutput = "output.psd";
using (var immagine = (PsdImmagine)Immagine.Carica(percorsoFileSorgente))
{
ResourceBlock[] risorseImmagine = immagine.ImageResources;
BackgroundColorResource risorsaColoreSfondo = null;
per ogni (var risorsaImmagine in risorseImmagine)
{
se (risorsaImmagine è BackgroundColorResource)
{
risorsaColoreSfondo = (BackgroundColorResource)risorsaImmagine;
pausa;
}
}
// aggiornare BackgroundColorResource
risorsaColoreSfondo.Color = Colore.DeepRed;
immagine.Salva(percorsoFileOutput);
}
PSDNET-530. Aggiunta di livelli di riempimento in tempo di esecuzione
string psdOutput = "output.psd";
using (var immagine = new PsdImmagine(100, 100))
{
FillLayer coloreLivelloFill = FillLayer.CreateInstance(FillType.Color);
coloreLivelloFill.DisplayName = "Livello di riempimento del colore";
immagine.AddLayer(coloreLivelloFill);
FillLayer coloLivelloGradient = FillLayer.CreateInstance(FillType.Gradient);
coloLivelloGradient.DisplayName = "Livello di riempimento sfumato";
immagine.AddLayer(coloLivelloGradient);
FillLayer patternFillLayer = FillLayer.CreateInstance(FillType.Pattern);
patternFillLayer.DisplayName = "Livello di riempimento modello";
patternFillLayer.Opacity = 50;
immagine.AddLayer(patternFillLayer);
immagine.Salva(psdOutput);
}
PSDNET-424. Supporto dell’risorsa della sezione immagine n. 1009 con informazioni sui bordi
string percorsoFileSorgente = "input.psd";
string percorsoFileOutput = "output.psd";
using (var immagine = (PsdImmagine)Immagine.Carica(percorsoFileSorgente))
{
ResourceBlock[] risorseImmagine = immagine.ImageResources;
BorderInformationResource risorsaInfoBordo = null;
per ogni (var risorsaImmagine in risorseImmagine)
{
se (risorsaImmagine è BorderInformationResource)
{
risorsaInfoBordo = (BorderInformationResource)risorsaImmagine;
pausa;
}
}
// aggiornare BorderInformationResource
risorsaInfoBordo.Width = 0.1;
risorsaInfoBordo.Unit = PhysicalUnit.Inches;
immagine.Salva(percorsoFileOutput);
}
PSDNET-592. Supporto dei livelli nei file di formato AI
vuoto AssertIsTrue(booleano condizione, stringa messaggio)
{
se (!condizione)
{
lanciare nuovo FormatException(messaggio);
}
}
string nomeFileSorgente = "form_8_2l3_7.ai";
string nomeFileOutput = "esportazione_form_8_2l3_7";
usando (AiImmagine immagine = (AiImmagine)Immagine.Carica(nomeFileSorgente))
{
AiLayerSection layer0 = immagine.Layers[0];
AssertIsTrue(layer0 != null, "Il Livello 0 dovrebbe non essere nullo.");
AssertIsTrue(layer0.Name == "Layer 4", "La proprietà Nome del livello 0 dovrebbe essere Layer 4");
AssertIsTrue(!layer0.IsTemplate, "La proprietà IsTemplate del livello 0 dovrebbe essere falsa.");