Note sulla release di Aspose.PSD per .NET 19.12
Contents
[
Hide
]
Questa pagina contiene le note sulla release di Aspose.PSD per .NET 19.12
Chiave | Sommario | Categoria |
---|---|---|
PSDNET-11 | Supporto del Livello Collegato | Caratteristica |
PSDNET-131 | Supporto di SoCoResource | Caratteristica |
PSDNET-115 | I linebreak vengono aggiunti ai linebreak esistenti se il TextLayer viene aggiornato con una stringa | Errore |
PSDNET-157 | Il salvataggio di PSB come PNG si blocca | Errore |
PSDNET-250 | Eccezione durante il caricamento di un file PSD CMYK senza livelli con compressione RLE | Errore |
PSDNET-161 | Eccezione durante l’aggiornamento dei livelli di testo | Errore |
PSDNET-222 | Il ridimensionamento di alcuni file PSD con maschere di livello non funziona correttamente | Errore |
PSDNET-244 | Il salvataggio di PSD con alcune impostazioni di Globalization.CultureInfo.CurrentCulture porta a eccezioni durante il caricamento | Errore |
Cambiamenti nell’API pubblica
API Aggiunte:
- P:Aspose.PSD.FileFormats.Psd.PsdImage.LinkedLayersManager
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerMaskDataFull.UserMaskData
- T:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager
- M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.LinkLayers(Aspose.PSD.FileFormats.Psd.Layers.Layer[])
- M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.UnlinkLayer(Aspose.PSD.FileFormats.Psd.Layers.Layer)
- M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.GetLayersByLinkGroupId(System.Int16)
- M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.GetLinkGroupId(Aspose.PSD.FileFormats.Psd.Layers.Layer)
API Rimosse:
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerMaskData.ImageDataVector
Esempi di utilizzo:
PSDNET-11. Supporto del Livello Collegato
usando (var psd = (PsdImage)Image.Load("esempio.psd"))
{
Layer[] layers = psd.Layers;
// collega tutti i livelli in un unico gruppo collegato
short layersLinkGroupId = psd.LinkedLayersManager.LinkLayers(layers);
// ottiene l'id per un livello
short linkGroupId = psd.LinkedLayersManager.GetLinkGroupId(layers[0]);
se (layersLinkGroupId != linkGroupId)
{
lancia una Eccezione("layersLinkGroupId e linkGroupId non sono uguali.");
}
// ottiene tutti i livelli collegati dall'id del gruppo collegato.
Layer[] linkedLayers = psd.LinkedLayersManager.GetLayersByLinkGroupId(linkGroupId);
// scollega ogni livello dal gruppo
foreach (var linkedLayer in linkedLayers)
{
psd.LinkedLayersManager.UnlinkLayer(linkedLayer);
}
// recupera NULL per un'id del gruppo collegato che non ha livelli nel gruppo.
linkedLayers = psd.LinkedLayersManager.GetLayersByLinkGroupId(linkGroupId);
se (linkedLayers != null)
{
lancia una Eccezione("Il campo linkedLayers non è NULL.");
}
psd.Save("psdnet11_output.psd");
}
PSDNET-131. Supporto di SoCoResource
// Supporto di SoCoResource
string nomeFileSorgente = "ColorFillLayer.psd";
string percorsoEsportazione = "SoCoResource_Modificato.psd";
var im = (PsdImage)Image.Load(nomeFileSorgente);
usando (im)
{
per ogni var livello in im.Layers
{
se (livello è FillLayer)
{
var fillLayer = (FillLayer)livello;
per ogni var risorsa in fillLayer.Resources
{
se (risorsa è SoCoResource)
{
var socoResource = (SoCoResource)risorsa;
Assert.AreEqual(Color.FromArgb(63, 83, 141), socoResource.Color);
socoResource.Color = Color.Red;
interrompi;
}
}
interrompi;
}
im.Save(percorsoEsportazione);
}
}
PSDNET-115. I linebreak vengono aggiunti ai linebreak esistenti se il TextLayer viene aggiornato con una stringa
const string NuovoTesto = "abcdef\rzxcvbn";
string percorsoFileSorgente = "FileDiTestPerCaratteriAsiatici.psd");
string percorsoFileOutput = "risultato.psd";
usando (var immagine = (PsdImage)Image.Load(percorsoFileSorgente))
{
var livello = (TextLayer)immagine.Layers[0];
var opzioniImmagine = new PsdOptions(immagine);
livello.UpdateText(NuovoTesto);
immagine.Save(percorsoFileOutput, opzioniImmagine);
}
usando (var immagineCreata = (PsdImage)Image.Load(percorsoFileOutput))
{
var livelloCreato = (TextLayer)immagineCreata.Layers[0];
se (NuovoTesto != livelloCreato.Testo)
{
lancia una InvalidDataException("Il testo aggiornato non è valido");
}
}
PSDNET-157. Il salvataggio di PSB come PNG si blocca
// Salvataggio di PSB come PNG
string nomeFileSorgente = "esempio.psb";
string nomeFileUscita = "esempio.png";
usando (PsdImage immagine = (PsdImage)Image.Load(nomeFileSorgente))
{
PngOptions opzioni = new PngOptions() { TipoColore = PngColorType.VeroColoreConAlfa };
immagine.Save(nomeFileUscita, opzioni);
}
PSDNET-250. Eccezione durante il caricamento di un file PSD CMYK senza layer con compressione RLE
void CaricaDatiGrezziDaPsd()
{
string percorsoSorgente = "CmykConAlpha.psd";
usando (RasterImage immagine = (RasterImage)Image.Load(percorsoSorgente))
{
var impostazioniDatiGrezzi = immagine.RawDataSettings;
RawDataTester loader = new RawDataTester();
immagine.LoadRawData(immagine.Bounds, impostazioniDatiGrezzi, loader);
}
}
class RawDataTester : IPartialRawDataLoader
{
public void Process(Rectangle rettangolo, byte[] pixel, Point inizio, Point fine)
{
}
public void Process(Rectangle rettangolo, byte[] pixel, Point inizio, Point fine, LoadOptions opzioniCaricamento)
{
}
}
PSDNET-161. Eccezione durante l’aggiornamento dei livelli di testo
// Carica un file PSD come immagine e convertilo in PsdImage
usando (PsdImage immaginePsd = (PsdImage)Image.Load("esempio.psd"))
{
per ogni var livello in immaginePsd.Layers
{
se (il livello è TextLayer)
{
TextLayer livelloTesto = livello come TextLayer;
livelloTesto.UpdateText("aggiornamento di testo", new Point(0, 0), 15.0f, Colore.Viola);
}
}
immaginePsd.Save("AggiornaLivelloTestoInFilePSD_ou.psd");
}
PSDNET-222. Ridimensionamento di alcuni file PSD con maschere di livello funziona in modo non corretto
int scala = 2;
string[] nomi = {
"OneRegularAndOneAdjustmentWithVectorAndLayerMask",
"LevelsLayerWithLayerMaskRgb",
"LevelsLayerWithLayerMaskCmyk",
"ColorBalanceAdjustmentLayer"
};
per (int i = 0; i < nomi.Length; i++)
{
string percorsoFileSorgente = nomi[i] + ".psd";
string percorsoFileOutput = "output_" + percorsoFileSorgente;
string percorsoFilePngOutput = "output_" + nomi[i] + ".png";
var opzioniCaricamentoPsd = new PsdLoadOptions() { CaricaRisorseEffetti = true };
usando (PsdImage immagine = (PsdImage)Image.Load(percorsoFileSorgente, opzioniCaricamentoPsd))
{
immagine.Ridimensiona(immagine.Larghezza * scala, immagine.Altezza * scala);
immagine.Save(percorsoFileOutput, new PsdOptions());
immagine.Save(percorsoFilePngOutput, new PngOptions() { TipoColore = PngColorType.VeroColoreConAlfa });
}
}
PSDNET-244. Il salvataggio di PSD con alcune impostazioni di Globalization.CultureInfo.CurrentCulture porta a eccezioni durante il caricamento
per (int i = 0; i <= 6; i++)
{
string nomeFileSorgente = string.Format("esempio-{0}.psd", i);
var opzioniCaricamentoPsd = new PsdLoadOptions() { CaricaRisorseEffetti = true };
var opzioniSalvataggioPsd = new PsdOptions();
var cultura = new System.Globalization.CultureInfo("ru-RU");
System.Threading.Thread.CurrentThread.CurrentCulture = cultura;
System.Threading.Thread.CurrentThread.CurrentUICulture = cultura;
string nomeFileUscita = "output-" + nomeFileSorgente;
// Carica un file PSD come immagine e convertilo in PsdImage
usando (PsdImage immagine = (PsdImage)Image.Load(nomeFileSorgente, opzioniCaricamentoPsd))
{
immagine.Ridimensiona(160, 120);
immagine.Save(nomeFileUscita, opzioniSalvataggioPsd);
}
cultura = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = cultura;
System.Threading.Thread.CurrentThread.CurrentUICulture = cultura;
// Carica un file PSD come immagine e convertilo in PsdImage
usando (PsdImage immagine2 = (PsdImage)Image.Load(nomeFileSorgente, opzioniCaricamentoPsd))
{
immagine2.Ridimensiona(160, 120);
immagine2.Save(nomeFileUscita, opzioniSalvataggioPsd);
}
}