Aspose.PSD voor Java 20.5 - Release-opmerkingen

Belangrijk Samenvatting Categorie
PSDJAVA-188 Ondersteuning voor voortgang van documentconversie Functie
PSDJAVA-197 Ondersteuning van Grayscale ColorMode PSD-afbeelding opslaan met 16 bit per kanaal Functie
PSDJAVA-198 Ondersteuning van Nvrt Resource (Invert Adjustment Layer Resource) Functie
PSDJAVA-200 Ondersteuning van Laagemaskers voor Laaggroepen Functie
PSDJAVA-195 Fout bij het opslaan van PSD-afbeelding met Grayscale ColorMode van 16 bit per kanaal naar 16-bits per kanaal RGB PSD-indeling Fout
PSDJAVA-196 Fout bij het opslaan van PSD-afbeelding met Grayscale ColorMode van 16 bit per kanaal naar 8 bit per kanaal Grayscale PSD-indeling Fout
PSDJAVA-199 Tekstuitlijning via ITextPortion werkt niet voor recht-naar-links talen. Het uitvoerbestand is beschadigd. Fout
PSDJAVA-201 Uitzondering bij het proberen te openen van een specifiek Psd-bestand met Lab Color en 8 bit/kanaal Fout

Wijzigingen in openbare API

Toegevoegde API’s:

  • Geen

Verwijderde API’s:

  • Geen

Gebruik voorbeelden:

PSDJAVA-188. Ondersteuning voor documentconversievoortgang

 // Een voorbeeld van het gebruik van de voortgangshandler voor laad- en opslaagressies.

// Het programma gebruikt verschillende opslagopties om voortgangsgebeurtenissen te activeren.

String bronBestandspad = "Apple.psd";

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

// Maak een voortgangshandler die voortgangsinformatie naar de console schrijft

ProgressEventHandler lokaleVoortgangsEventHandler = new ProgressEventHandler()

{

    @Override

    public void invoke(ProgressEventHandlerInfo voortgangsInfo)

    {

        String bericht = String.format(

                "%s %s: %s van %s",

                voortgangsInfo.getOmschrijving(),

                Enum.getName(EventType.class, voortgangsInfo.getGebeurtenisType()),

                voortgangsInfo.getWaarde(),

                voortgangsInfo.getMaximaleWaarde());

        System.out.println(bericht);

    }

};

System.out.println("---------- Laden Apple.psd ----------");

PsdLoadOptions laadOpties = new PsdLoadOptions();

// Koppel de voortgangshandler om de laadvoortgang te tonen

laadOpties.setProgressEventHandler(lokaleVoortgangsEventHandler);

// Laad PSD met specifieke laadopties

PsdImage afbeelding = (PsdImage)Image.load(bronBestandspad, laadOpties);

try

{

    System.out.println("---------- Opslaan Apple.psd naar PNG-indeling ----------");

    PngOptions pngOpties = new PngOptions();

    // Maak de uitvoerafbeelding gekleurd en niet-transparant

    pngOpties.setColorType(PngColorType.Truecolor);

    // Koppel de voortgangshandler om de opslagvoortgang te tonen

    pngOpties.setProgressEventHandler(lokaleVoortgangsEventHandler);

    // Converteer PSD naar PNG met specifieke kenmerken

    afbeelding.save(outputStream, pngOpties);

    System.out.println("---------- Opslaan Apple.psd naar PSD-indeling ----------");

    PsdOptions psdOpties = new PsdOptions();

    // Maak de uitvoer-PSD gekleurd

    psdOpties.setColorMode(ColorModes.Rgb);

    // Stel een kanaal in voor elke kleur (rood, groen en blauw) plus een samengesteld kanaal

    psdOpties.setChannelsCount((short)4);

    // Koppel de voortgangshandler om de opslagvoortgang te tonen

    psdOpties.setProgressEventHandler(lokaleVoortgangsEventHandler);

    // Sla een kopie van PSD op met specifieke kenmerken

    afbeelding.save(outputStream, psdOpties);

}

finally

{

    afbeelding.dispose();

}

PSDJAVA-197. Ondersteuning van Grayscale ColorMode PSD-afbeelding opslaan met 16 bit per kanaal

 // Een voorbeeld van het toepassen van verschillende combinaties van kleurmodi, bits per kanaal, kanalen

// telt en compressies voor specifieke lagen.

// Maak een methode toegankelijk vanuit de lokale scope

class LocalScopeExtension

{

    void saveToPsdThenLoadAndSaveToPng(

            String bestand,

            short kleurModus,

            short kanaalBitsTellen,

            short kanalenTellen,

            short compressie,

            int laagNummer)

    {

        String bestandsPad = bestand + ".psd";

        String postfix = Enum.getName(ColorModes.class, kleurModus) + kanaalBitsTellen + "_" +

                kanalenTellen + "_" + Enum.getName(CompressionMethod.class, compressie);

        String exportPad = bestand + postfix + ".psd";

        String pngExportPad = bestand + postfix + ".png";

        // Laad een vooraf gedefinieerde 16-bits grijstinten PSD

        PsdImage afbeelding = (PsdImage)Image.load(bestandsPad);

        try

        {

            RasterCachedImage raster = laagNummer >= 0 ? afbeelding.getLayers()[laagNummer] : afbeelding;

            // Teken een grijze binnenrand rond de omtrek van de laag

            Graphics graphics = new Graphics(raster);

            int breedte = raster.getWidth();

            int hoogte = raster.getHeight();

            Rechthoek rechthoek = nieuwe Rechthoek(

                    breedte / 3,

                    hoogte / 3,

                    breedte - (2 * (breedte / 3)) - 1,

                    hoogte - (2 * (hoogte / 3)) - 1);

            graphics.tekenRechthoek(new Pen(Color.getDarkGray(), 1), rechthoek);

            // Sla een kopie van PSD op met specifieke kenmerken

            PsdOpties psdOpties = new PsdOpties();

            psdOpties.setColorMode(kleurModus);

            psdOpties.setChannelBitsCount(kanaalBitsTellen);

            psdOpties.setChannelsCount(kanalenTellen);

            psdOpties.setCompressionMethod(compressie);

            afbeelding.save(exportPad, psdOpties);

        }

        finally

        {

            afbeelding.dispose();

        }

        // Laad de opgeslagen PSD

        PsdImage afbeelding1 = (PsdImage)Image.load(exportPad);

        try

        {

            // Converteer de opgeslagen PSD naar een grijstinten PNG-afbeelding

            PngOpties pngOpties = nieuwe PngOpties();

            pngOpties.setColorType(PngColorType.GrayscaleWithAlpha);

            afbeelding1.save(pngExportPad, pngOpties); // hier mag geen uitzondering zijn

        }

        finally

        {

            afbeelding1.dispose();

        }

    }

}

LocalScopeExtension $ = nieuwe LocalScopeExtension();

$.saveToPsdThenLoadAndSaveToPng("grijstinten5x5", ColorModes.Cmyk, (short)16, (short)5, CompressionMethod.RLE, 0);

$.saveToPsdThenLoadAndSaveToPng("argb16bit_5x5", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, 0);

$.saveToPsdThenLoadAndSaveToPng("argb16bit_5x5_geen_lagen", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, -1);

$.saveToPsdThenLoadAndSaveToPng("argb8bit_5x5", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, 0);

$.saveToPsdThenLoadAndSaveToPng("argb8bit_5x5_geen_lagen", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, -1);

$.saveToPsdThenLoadAndSaveToPng("cmyk16bit_5x5_geen_lagen", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, -1);

$.saveToPsdThenLoadAndSaveToPng("index8bit_5x5", ColorModes.Grayscale, (short)16, (short)2, CompressionMethod.RLE, -1);

PSDJAVA-198. Ondersteuning van Nvrt Resource (Invert Adjustment Layer Resource)

 // Een voorbeeld van het vinden van NvrtResource van een omgekeerde aanpassingslaag.

String inPsdBestandspad = "InvertAdjustmentLayer.psd";

NvrtResource nvrtResource = null;

// Laad een vooraf gedefinieerde PSD die een omgekeerde aanpassingslaag bevat

PsdImage psdAfbeelding = (PsdImage)Image.load(inPsdBestandspad);

try

{

    // Probeer een resource van de omgekeerde aanpassingslaag te vinden

    for (Laag laag : psdAfbeelding.getLayers())

    {

        als (laag instanceof InvertAdjustmentLayer)

        {

            voor (LaagResource laagResource : laag.getResources())

            {

                als (laagResource instanceof NvrtResource)

                {

                    // De NvrtResource is gevonden

                    nvrtResource = (NvrtResource)laagResource;

                    doorbreken;

                }

            }

        }

    }

}

finally

{

    psdAfbeelding.dispose();

}

PSDJAVA-200. Ondersteuning van Laagemaskers voor Laaggroepen

 // Een voorbeeld van ondersteuning van laagemaskers voor laaggroepen. Het programma laadt en slaat PSD op

// naar verschillende uitvoerindelingen zonder uitzonderingen te genereren.

String bronBestand = "psdnet595.psd";

String uitvoerPng = "uitvoer.png";

String uitvoerPsd = "uitvoer.psd";

// Laad een vooraf gedefinieerde PSD die laagemaskers bevat voor laaggroepen

PsdImage invoer = (PsdImage)Image.load(bronBestand);

try

{

    // Converteer geladen PSD naar PNG

    invoer.save(uitvoerPng, nieuwe PngOpties());

    // Sla een kopie van de PSD op

    invoer.save(uitvoerPsd);

}

finally

{

    invoer.dispose();

}

PSDJAVA-195. Fout bij het opslaan van PSD-afbeelding met Grayscale ColorMode 16bit per kanaal naar 16bit per kanaal RGB PSD-indeling

 // Een voorbeeld van het omzetten van een 16-bits grijsschaal PSD naar een 16-bits RGB PSD en vervolgens terug

// naar 16-bits grijsschaal maar een rasterafbeelding.

String bronBestandspad = "grijstinten5x5.psd";

String exportBestandspad = "rgb16bit5x5_output.psd";

String pngExportPad = "rgb16bit5x5_output.png";

// Laad een vooraf gedefinieerde 16-bits grijsschaal PSD

PsdImage afbeelding = (PsdImage)Image.load(bronBestandspad);

try

{

    RasterCachedImage raster = afbeelding.getLayers()[0];

    // Teken een grijze binnenrand rond de omtrek van de laag

    Graphics graphics = new Graphics(raster);

    int breedte = raster.getWidth();

    int hoogte = raster.getHeight();

    Rechthoek rechthoek = nieuwe Rechthoek(breedte / 3, hoogte / 3, breedte - (2 * (breedte / 3)) - 1, hoogte - (2 * (hoogte / 3)) - 1);

    graphics.tekenRechthoek(new Pen(Color.getDarkGray(), 1), rechthoek);

    // Sla een kopie van PSD op met de kleurmodus gewijzigd naar RBG

    PsdOpties psdOpties = nieuwe PsdOpties();

    psdOpties.setColorMode(ColorModes.Rgb);

    psdOpties.setChannelBitsCount((short)16);

    psdOpties.setChannelsCount((short)4);

    afbeelding.save(exportBestandspad, psdOpties);

}

finally

{

    afbeelding.dispose();

}

// Laad de opgeslagen PSD

PsdImage afbeelding1 = (PsdImage)Image.load(exportBestandspad);

try

{

    PngOpties pngOpties = nieuwe PngOpties();

    pngOpties.setColorType(PngColorType.GrayscaleWithAlpha);

    // Converteer de opgeslagen PSD naar een grijsschaal PNG-afbeelding

    afbeelding1.save(pngExportPad, pngOpties); // hier mag geen uitzondering zijn

}

finally

{

    afbeelding1.dispose();

}

PSDJAVA-196. Fout bij het opslaan van PSD-afbeelding met Grayscale ColorMode 16bit per kanaal naar 8 bit per kanaal Grayscale PSD-indeling

 // Een voorbeeld van het omzetten van een 16-bits grijsschaal PSD naar een 8-bits grijsschaal en vervolgens naar

// een 8-bits grijsschaal rasterafbeelding.

String bronBestandspad = "grijsschaal16bit.psd";

String exportBestandspad = "grijsschaal16bit_output.psd";

String pngExportPad = "grijsschaal16bit_output.png";

// Laad een vooraf gedefinieerde 16-bits grijsschaal PSD

PsdImage afbeelding = (PsdImage)Image.load(bronBestandspad);

try

{

    RasterCachedImage raster = afbeelding.getLayers()[0];

    // Teken een grijze binnenrand rond de omtrek van de laag

    Graphics graphics = new Graphics(raster);

    int breedte = raster.getWidth();

    int hoogte = raster.getHeight();

    Rechthoek rechthoek = nieuwe Rechthoek(breedte / 3, hoogte / 3, breedte - (2 * (breedte / 3)) - 1, hoogte - (2 * (hoogte / 3)) - 1);

    graphics.tekenRechthoek(new Pen(Color.getDarkGray(), 1), rechthoek);

    // Sla een kopie van PSD op met het kanaalaantal gewijzigd naar 8-bits

    PsdOpties psdOpties = nieuwe PsdOpties();

    psdOpties.setColorMode(ColorModes.Grayscale);

    psdOpties.setChannelBitsCount((short)8);

    psdOpties.setChannelsCount((short)2);

    afbeelding.save(exportBestandspad, psdOpties);

}

finally

{

    afbeelding.dispose();

}

// Laad de opgeslagen PSD

PsdImage afbeelding1 = (PsdImage)Image.load(exportBestandspad);

try

{

    PngOpties pngOpties = nieuwe PngOpties();

    pngOpties.setColorType(PngColorType.GrayscaleWithAlpha);

    // Converteer de opgeslagen PSD naar een grijsschaal PNG-afbeelding

    afbeelding1.save(pngExportPad, pngOpties); // hier mag geen uitzondering zijn

}

finally

{

    afbeelding1.dispose();

}

PSDJAVA-199. Tekstuitlijning via ITextPortion werkt niet voor recht-naar-links talen. Het uitvoerbestand is beschadigd.

 // Een voorbeeld van het uitlijnen van RTL-tekstlaag via ITextPortion. Het programma wijzigt

// een bestaande RTL-tekstlaag in geladen PSD en slaat een kopie van het gewijzigde document op.

String bronBestandsnaam = "bidi.psd";

String uitvoerBestandsnaam = "bidiOutput.psd";

// Laad een vooraf gedefinieerde PSD met een RTL-tekstlaag

PsdImage afbeelding = (PsdImage