Note sulla versione di Aspose.PSD per Java 20.5
Chiave | Sommario | Categoria |
---|---|---|
PSDJAVA-188 | Supporto per il progresso della conversione del documento | Caratteristica |
PSDJAVA-197 | Supporto del salvataggio dell’immagine PSD del modo di colore scala di grigi con 16 bit per canale | Caratteristica |
PSDJAVA-198 | Supporto di Nvrt Resource (Risorsa livello di regolazione invertita) | Caratteristica |
PSDJAVA-200 | Supporto dei maschere di livello per i gruppi di livelli | Caratteristica |
PSDJAVA-195 | Risoluzione del salvataggio dell’immagine PSD con modo di colore scala di grigi a 16 bit per canale al formato PSD a 16 bit per canale RGB | Errore |
PSDJAVA-196 | Risoluzione del salvataggio dell’immagine PSD con modo di colore scala di grigi a 16 bit per canale al formato PSD scala di grigi a 8 bit per canale | Errore |
PSDJAVA-199 | L’allineamento del testo attraverso ITextPortion non funziona per le lingue da destra verso sinistra. Il file di output è danneggiato. | Errore |
PSDJAVA-201 | Eccezione nel tentativo di aprire un file Psd particolare con Colore Lab e 8 bit/canale | Errore |
Cambiamenti nell’API pubblica
API aggiunte:
- Nessuna
API rimosse:
- Nessuna
Esempi di utilizzo:
PSDJAVA-188. Supporto per il progresso della conversione del documento
// Un esempio di utilizzo del gestore del progresso per operazioni di caricamento e salvataggio.
// Il programma utilizza diverse opzioni di salvataggio per triggerare eventi di progresso.
String sourceFilePath = "Mela.psd";
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// Crea un gestore del progresso che scrive le informazioni di progresso nella console
ProgressEventHandler localProgressEventHandler = new ProgressEventHandler()
{
@Override
public void invoke(ProgressEventHandlerInfo progressInfo)
{
String message = String.format(
"%s %s: %s su %s",
progressInfo.getDescription(),
Enum.getName(EventType.class, progressInfo.getEventType()),
progressInfo.getValue(),
progressInfo.getMaxValue());
System.out.println(message);
}
};
System.out.println("---------- Caricamento Mela.psd ----------");
PsdLoadOptions loadOptions = new PsdLoadOptions();
// Lega il gestore del progresso per mostrare il progresso di caricamento
loadOptions.setProgressEventHandler(localProgressEventHandler);
// Carica PSD utilizzando opzioni di caricamento specifiche
PsdImage image = (PsdImage)Image.load(sourceFilePath, loadOptions);
try
{
System.out.println("---------- Salvataggio Mela.psd nel formato PNG ----------");
PngOptions pngOptions = new PngOptions();
// Rendi l'immagine di output a colori e non trasparente
pngOptions.setColorType(PngColorType.Truecolor);
// Lega il gestore del progresso per mostrare il progresso di salvataggio
pngOptions.setProgressEventHandler(localProgressEventHandler);
// Converti PSD in PNG con caratteristiche specifiche
image.save(outputStream, pngOptions);
System.out.println("---------- Salvataggio Mela.psd nel formato PSD ----------");
PsdOptions psdOptions = new PsdOptions();
// Rendi il PSD di output a colori
psdOptions.setColorMode(ColorModes.Rgb);
// Imposta un canale per ogni colore (rosso, verde e blu) più un canale composito
psdOptions.setChannelsCount((short)4);
// Lega il gestore del progresso per mostrare il progresso di salvataggio
psdOptions.setProgressEventHandler(localProgressEventHandler);
// Salva una copia di PSD con caratteristiche specifiche
image.save(outputStream, psdOptions);
}
finally
{
image.dispose();
}
PSDJAVA-197. Supporto del salvataggio dell’immagine PSD del modo di colore scala di grigi con 16 bit per canale
// Un esempio di applicazione di diverse combinazioni di modi di colore, bit per canale, canali
// contare e compressioni per livelli specifici.
// Rendere un metodo accessibile dallo scope locale
class EstensioneScopeLocale
{
void saveToPsdThenLoadAndSaveToPng(
String file,
short colorMode,
short channelBitsCount,
short channelsCount,
short compression,
int layerNumber)
{
String filePath = file + ".psd";
String postfix = Enum.getName(ColorModes.class, colorMode) + channelBitsCount + "_" +
channelsCount + "_" + Enum.getName(CompressionMethod.class, compression);
String exportPath = file + postfix + ".psd";
String pngExportPath = file + postfix + ".png";
// Carica un PSD in scala di grigi a 16 bit predefinito
PsdImage image = (PsdImage)Image.load(filePath);
try
{
RasterCachedImage raster = layerNumber >= 0 ? image.getLayers()[layerNumber] : image;
// Disegna un bordo interno grigio intorno al perimetro del livello
Graphics graphics = new Graphics(raster);
int width = raster.getWidth();
int height = raster.getHeight();
Rectangle rect = new Rectangle(
width / 3,
height / 3,
width - (2 * (width / 3)) - 1,
height - (2 * (height / 3)) - 1);
graphics.drawRectangle(new Pen(Color.getDarkGray(), 1), rect);
// Salva una copia di PSD con caratteristiche specifiche
PsdOptions psdOptions = new PsdOptions();
psdOptions.setColorMode(colorMode);
psdOptions.setChannelBitsCount(channelBitsCount);
psdOptions.setChannelsCount(channelsCount);
psdOptions.setCompressionMethod(compression);
image.save(exportPath, psdOptions);
}
finally
{
image.dispose();
}
// Carica il PSD salvato
PsdImage image1 = (PsdImage)Image.load(exportPath);
try
{
// Converti il PSD salvato in un'immagine PNG in scala di grigi
PngOptions pngOptions = new PngOptions();
pngOptions.setColorType(PngColorType.GrayscaleWithAlpha);
image1.save(pngExportPath, pngOptions); // qui non dovrebbe esserci alcuna eccezione
}
finally
{
image1.dispose();
}
}
}
EstensioneScopeLocale $ = new EstensioneScopeLocale();
$.saveToPsdThenLoadAndSaveToPng("scala_di_grigi5x5", ColorModes.Cmyk, (short)16, (short)5, CompressionMethod.RLE, 0);
$.saveToPsdThenLoadAndSaveToPng("argb16bit_5x5", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, 0);
$.saveToPsdThenLoadAndSaveToPng("argb16bit_5x5_senza_livelli", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, -1);
$.saveToPsdThenLoadAndSaveToPng("argb8bit_5x5", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, 0);
$.saveToPsdThenLoadAndSaveToPng("argb8bit_5x5_senza_livelli", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, -1);
$.saveToPsdThenLoadAndSaveToPng("cmyk16bit_5x5_senza_livelli", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, -1);
$.saveToPsdThenLoadAndSaveToPng("indice8bit_5x5", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, -1);
PSDJAVA-198. Supporto di Nvrt Resource (Risorsa livello di regolazione invertita)
// Un esempio di trovare NvrtResource di un livello di regolazione invertito.
String inPsdFilePath = "LivelloRegolazioneInvertito.psd";
NvrtResource nvrtResource = null;
// Carica un PSD predefinito contenente un livello di regolazione invertito
PsdImage psdImage = (PsdImage)Image.load(inPsdFilePath);
try
{
// Cerca una risorsa del livello di regolazione invertito
for (Layer layer : psdImage.getLayers())
{
if (layer instanceof InvertAdjustmentLayer)
{
for (LayerResource layerResource : layer.getResources())
{
if (layerResource instanceof NvrtResource)
{
// La risorsa NvrtResource è trovata
nvrtResource = (NvrtResource)layerResource;
break;
}
}
}
}
}
finally
{
psdImage.dispose();
}
PSDJAVA-200. Supporto dei maschere di livello per i gruppi di livelli
// Un esempio di supporto delle maschere di livello per i gruppi di livelli. Il programma carica e salva PSD
// in diversi formati di output senza generare eccezioni.
String srcFile = "psdnet595.psd";
String outputPng = "output.png";
String outputPsd = "output.psd";
// Carica un PSD predefinito contenente maschere di livello per i gruppi di livelli
PsdImage input = (PsdImage)Image.load(srcFile);
try
{
// Converti il PSD caricato in PNG
input.save(outputPng, new PngOptions());
// Salva una copia del PSD
input.save(outputPsd);
}
finally
{
input.dispose();
}
PSDJAVA-195. Risoluzione del salvataggio dell’immagine PSD con modo di colore scala di grigi a 16 bit per canale al formato PSD a 16 bit per canale RGB
// Un esempio di conversione di un PSD scala di grigi a 16 bit in uno RGB a 16 bit e poi di nuovo a
// un'immagine raster a 16 bit in scala di grigi.
String sourceFilePath = "scala_di_grigi5x5.psd";
String exportFilePath = "rgb16bit5x5_output.psd";
String pngExportPath = "rgb16bit5x5_output.png";
// Carica un PSD scala di grigi a 16 bit predefinito
PsdImage image = (PsdImage)Image.load(sourceFilePath);
try
{
RasterCachedImage raster = image.getLayers()[0];
// Disegna un bordo interno grigio intorno al perimetro del livello
Graphics graphics = new Graphics(raster);
int width = raster.getWidth();
int height = raster.getHeight();
Rectangle rect = new Rectangle(width / 3, height / 3, width - (2 * (width / 3)) - 1, height - (2 * (height / 3)) - 1);
graphics.drawRectangle(new Pen(Color.getDarkGray(), 1), rect);
// Salva una copia di PSD con il modo di colore cambiato in RBG
PsdOptions psdOptions = new PsdOptions();
psdOptions.setColorMode(ColorModes.Rgb);
psdOptions.setChannelBitsCount((short)16);
psdOptions.setChannelsCount((short)4);
image.save(exportFilePath, psdOptions);
}
finally
{
image.dispose();
}
// Carica il PSD salvato
PsdImage image1 = (PsdImage)Image.load(exportFilePath);
try
{
PngOptions pngOptions = new PngOptions();
pngOptions.setColorType(PngColorType.GrayscaleWithAlpha);
// Converti il PSD salvato in un'immagine PNG in scala di grigi
image1.save(pngExportPath, pngOptions); // qui non dovrebbe esserci alcuna eccezione
}
finally
{
image1.dispose();
}
PSDJAVA-196. Risoluzione del salvataggio dell’immagine PSD con modo di colore scala di grigi a 16 bit per canale al formato PSD scala di grigi a 8 bit per canale
// Un esempio di conversione di un PSD scala di grigi a 16 bit in uno scala di grigi a 8 bit e poi in
// un'immagine raster a 8 bit in scala di grigi.
String sourceFilePath = "scala_di_grigi16bit.psd";
String exportFilePath = "grayscale16bit_output.psd";
String pngExportPath = "grayscale16bit_output.png";
// Carica un PSD scala di grigi a 16 bit predefinito
PsdImage image = (PsdImage)Image.load(sourceFilePath);
try
{
RasterCachedImage raster = image.getLayers()[0];
// Disegna un bordo interno grigio intorno al perimetro del livello
Graphics graphics = new Graphics(raster);
int width = raster.getWidth();
int height = raster.getHeight();
Rectangle rect = new Rectangle(width / 3, height / 3, width - (2 * (width / 3)) - 1, height - (2 * (height / 3)) - 1);
graphics.drawRectangle(new Pen(Color.getDarkGray(), 1), rect);
// Salva una copia di PSD con il conteggio canali cambiato a 8-bit
PsdOptions psdOptions = new PsdOptions();
psdOptions.setColorMode(ColorModes.Grayscale);
psdOptions.setChannelBitsCount((short)8);
psdOptions.setChannelsCount((short)2);
image.save(exportFilePath, psdOptions);
}
finally
{
image.dispose();
}
// Carica il PSD salvato
PsdImage image1 = (PsdImage)Image.load(exportFilePath);
try
{
PngOptions pngOptions = new PngOptions();
pngOptions.setColorType(PngColorType.GrayscaleWithAlpha);
// Converti il PSD salvato in un'immagine PNG in scala di grigi
image1.save(pngExportPath, pngOptions); // qui non dovrebbe esserci alcuna eccezione
}
finally
{
image1.dispose();
}
PSDJAVA-199. L’allineamento del testo attraverso ITextPortion non funziona per le lingue da destra verso sinistra. Il file di output è danneggiato.
// Un esempio di allineamento di un livello di testo RTL attraverso ITextPortion. Il programma modifica
// un livello di testo RTL esistente in un PSD caricato e salva una copia del documento modificato.
String sourceFileName = "bidi.psd";
String outputFileName = "bidiOutput.psd";
// Carica un PSD predefinito contenente un livello di testo RTL
PsdImage image = (PsdImage)Image.load(sourceFileName);
try
{
// Ottieni porzioni di testo dal livello
TextLayer layer = (TextLayer)image.getLayers()[2];
ITextPortion[] portions = layer.getTextData().getItems();
// Cambia l'allineamento del testo
portions[0].getParagraph().setJustification(2);
// Applica modifiche al livello
layer.getTextData().updateLayerData();
// Salva una copia modificata del PSD
image.save(outputFileName);
}
finally
{
image.dispose();
}
PSDJAVA-201. Eccezione nel tentativo di aprire un file Psd particolare con Colore Lab e 8 bit/canale
// Un esempio del supporto di un documento Photoshop a 8 bit in modalità colore LAB.
String srcFile = "SenzaTitolo-1.psd";
String outputFilePsd = "output.psd";
// Carica un PSD predefinito a 8 bit in modalità colore LAB
PsdImage psdImage = (PsdImage)Image.load(srcFile);
try
{
// Salva una copia del PSD caricato
psdImage.save(outputFilePsd);
}
finally
{
psdImage.dispose();
}