Aspose.PSD за Java 20.5 - Бележки за версията

Ключ Резюме Категория
PSDJAVA-188 Поддръжка за напредъка на преобразуването на документ Функционалност
PSDJAVA-197 Поддръжка на запазване на изображение в PSD формат със Цветови режим на Градацията на сивото с 16 бита на канал Функционалност
PSDJAVA-198 Поддръжка на ресурс за Invert Настройка на слоя на Nvrt (Инверсно Настройка на слоя) Функционалност
PSDJAVA-200 Поддръжка на слойни маски за групи от слоеве Функционалност
PSDJAVA-195 Оправяне на запазването на PSD изображение с Цветови режим на Градацията на сивото с 16 бита на канал към PSD формат с 16 бита на канал RGB Проблем
PSDJAVA-196 Оправяне на запазването на PSD изображение с Цветови режим на Градацията на сивото с 16 бита на канал към 8 бита на канал Цветови градации в PSD формат Проблем
PSDJAVA-199 Позициониране на текста чрез ITextPortion не работи за дясно-наляво езици. Изходният файл е повреден. Проблем
PSDJAVA-201 Изключение при опит за отваряне на конкретен PSD файл с цвят на Лаб и 8 бита/канал Проблем

Промени в обществените API

Добавени API-та:

  • Никакви

Премахнати API-та:

  • Никакви

Примери за използване:

PSDJAVA-188. Поддръжка за напредъка на преобразуването на документ

 // Пример за използване на обработчика на напредъка за зареждане и запазване на операции.

// Програмата използва различни опции за запазване, за да активира събития за напредъка.

String sourceFilePath = "Apple.psd";

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

// Създайте обработчик на напредъка, който записва информация за напредъка в конзолата

ProgressEventHandler localProgressEventHandler = new ProgressEventHandler()

{

    @Override

    public void invoke(ProgressEventHandlerInfo progressInfo)

    {

        String message = String.format(

                "%s %s: %s out of %s",

                progressInfo.getDescription(),

                Enum.getName(EventType.class, progressInfo.getEventType()),

                progressInfo.getValue(),

                progressInfo.getMaxValue());

        System.out.println(message);

    }

};

System.out.println("---------- Зареждане на Apple.psd ----------");

PsdLoadOptions loadOptions = new PsdLoadOptions();

// Присъединете обработчика на напредъка, за да се покаже напредъка на зареждане

loadOptions.setProgressEventHandler(localProgressEventHandler);

// Заредете PSD с определени опции за зареждане

PsdImage image = (PsdImage)Image.load(sourceFilePath, loadOptions);

try

{

    System.out.println("---------- Запазване на Apple.psd като PNG формат ----------");

    PngOptions pngOptions = new PngOptions();

    // Направете изображението цветно и не прозрачно

    pngOptions.setColorType(PngColorType.Truecolor);

    // Присъединете обработчика на напредъка, за да се покаже напредъка на запазване

    pngOptions.setProgressEventHandler(localProgressEventHandler);

    // Конвертирайте PSD в PNG с определени характеристики

    image.save(outputStream, pngOptions);

    System.out.println("---------- Запазване на Apple.psd като PSD формат ----------");

    PsdOptions psdOptions = new PsdOptions();

    // Направете изходното PSD цветно

    psdOptions.setColorMode(ColorModes.Rgb);

    // Задайте канал за всяка цветова гама (червено, зелено и синьо) плюс композитен канал

    psdOptions.setChannelsCount((short)4);

    // Присъединете обработчика на напредъка, за да се покаже напредъка при запазване

    psdOptions.setProgressEventHandler(localProgressEventHandler);

    // Запазете копие на PSD с определени характеристики

    image.save(outputStream, psdOptions);

}

finally

{

    image.dispose();

}

PSDJAVA-197. Поддръжка на запазване на изображение в PSD формат с цветови режим на Градацията на сивото с 16 бита на канал

 // Пример за прилагане на различни комбинации от цветови режими, битове на канал, брой канали

// и компресии за специфични слоеве.

// Нека един метод бъде достъпен от локалния обхват

class LocalScopeExtension

{

    void saveToPsdThenLoadAndSaveToPng(

            String file,

            short цветовиРежим,

            short бройБитаНаКанал,

            short бройКанали,

            short компресия,

            int номерНаСлоя)

    {

        String filePath = file + ".psd";

        String postfix = Enum.getName(ColorModes.class, цветовиРежим) + бройБитаНаКанал + "_" +

                бройКанали + "_" + Enum.getName(CompressionMethod.class, компресия);

        String exportPath = file + postfix + ".psd";

        String pngExportPath = file + postfix + ".png";

        // Заредете предварително зададен 16-битов PSD с нива на сивота

        PsdImage image = (PsdImage)Image.load(filePath);

        try

        {

            RasterCachedImage raster = номерНаСлоя >= 0 ? image.getLayers()[номерНаСлоя] : image;

            // Начертайте сив вътрешен контур около периметъра на слоя

            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);

            // Запазете копие на PSD с определени характеристики

            PsdOptions psdOptions = new PsdOptions();

            psdOptions.setColorMode(цветовиРежим);

            psdOptions.setChannelBitsCount(бройБитаНаКанал);

            psdOptions.setChannelsCount(бройКанали);

            psdOptions.setCompressionMethod(компресия);

            image.save(exportPath, psdOptions);

        }

        finally

        {

            image.dispose();

        }

        // Заредете запазения PSD

        PsdImage image1 = (PsdImage)Image.load(exportPath);

        try

        {

            // Конвертирайте запазения PSD в сиво PNG изображение

            PngOptions pngOptions = new PngOptions();

            pngOptions.setColorType(PngColorType.GrayscaleWithAlpha);

            image1.save(pngExportPath, pngOptions); // тук не трябва да има изключение

        }

        finally

        {

            image1.dispose();

        }

    }

}

LocalScopeExtension $ = new LocalScopeExtension();

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

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

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

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

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

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

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

PSDJAVA-198. Поддръжка на ресурс за Invert Настройка на слоя

 // Пример за намиране на ресурс от инвертиран слой за настройка.

String inPsdFilePath = "InvertAdjustmentLayer.psd";

NvrtResource nvrtResource = null;

// Зареждане на предварително зададен PSD с инверсен слой за настройка

PsdImage psdImage = (PsdImage)Image.load(inPsdFilePath);

try

{

    // Опитайте се да намерите ресурс на инверсния слой за настройка

    for (Layer layer : psdImage.getLayers())

    {

        if (layer instanceof InvertAdjustmentLayer)

        {

            for (LayerResource layerResource : layer.getResources())

            {

                if (layerResource instanceof NvrtResource)

                {

                    // Намерен е ресурсът NvrtResource

                    nvrtResource = (NvrtResource)layerResource;

                    break;

                }

            }

        }

    }

}

finally

{

    psdImage.dispose();

}

PSDJAVA-200. Поддръжка на слойни маски за групи от слоеве

 // Пример за поддръжка на слойни маски за групи от слоеве. Програмата зарежда и запазва PSD

// в различни изходни формати без изхвърляне на изключения.

String srcFile = "psdnet595.psd";

String outputPng = "output.png";

String outputPsd = "output.psd";

// Заредете предварително зададен PSD, съдържащ слойни маски за групи от слоеве

PsdImage input = (PsdImage)Image.load(srcFile);

try

{

    // Конвертирайте заредения PSD в PNG

    input.save(outputPng, new PngOptions());

    // Запазете копие на PSD

    input.save(outputPsd);

}

finally

{

    input.dispose();

}

PSDJAVA-195. Оправяне на запазването на PSD изображение с Цветови режим на Градацията на сивото с 16 бита на канал към 16 бита на канал RGB PSD формат

 // Пример за преобразуване на 16-битов PSD с нива на сивота към 16-битов RGB и после обратно към

// 16-битово сиво изображение.

String sourceFilePath = "grayscale5x5.psd";

String exportFilePath = "rgb16bit5x5_output.psd";

String pngExportPath = "rgb16bit5x5_output.png";

// Заредете предварително зададен 16-битов PSD с нива на сивота

PsdImage image = (PsdImage)Image.load(sourceFilePath);

try

{

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

    // Начертайте сив вътрешен контур около периметъра на слоя

    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);

    // Запазете копие на PSD с променен цветови режим на RBG

    PsdOptions psdOptions = new PsdOptions();

    psdOptions.setColorMode(ColorModes.Rgb);

    psdOptions.setChannelBitsCount((short)16);

    psdOptions.setChannelsCount((short)4);

    image.save(exportFilePath, psdOptions);

}

finally

{

    image.dispose();

}

// Заредете запазения PSD

PsdImage image1 = (PsdImage)Image.load(exportFilePath);

try

{

    PngOptions pngOptions = new PngOptions();

    pngOptions.setColorType(PngColorType.GrayscaleWithAlpha);

    // Конвертирайте запазения PSD в сиво PNG изображение

    image1.save(pngExportPath, pngOptions); // тук не трябва да има изключение

}

finally

{

    image1.dispose();

}

PSDJAVA-196. Оправяне на запазването на PSD изображение с Цветови режим на Градацията на сивото с 16 бита на канал към 8 бита на канал Цветови градации в PSD формат

 // Пример за преобразуване на 16-битов PSD с нива на сивота към 8-битово сиво и после към

// 8-битово сиво растерно изображение.

String sourceFilePath = "grayscale16bit.psd";

String exportFilePath = "grayscale16bit_output.psd";

String pngExportPath = "grayscale16bit_output.png";

// Заредете предварително зададен 16-битов PSD с нива на сивота

PsdImage image = (PsdImage)Image.load(sourceFilePath);

try

{

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

    // Начертайте сив вътрешен контур около периметъра на слоя

    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);

    // Запазете копие на PSD с променено брой канали на 8-битовата скала

    PsdOptions psdOptions = new PsdOptions();

    psdOptions.setColorMode(ColorModes.Grayscale);

    psdOptions.setChannelBitsCount((short)8);

    psdOptions.setChannelsCount((short)2);

    image.save(exportFilePath, ps