یادداشت های نسخه Aspose.PSD برای جاوا 20.5

کلید خلاصه دسته
PSDJAVA-188 پشتیبانی از پیشرفت تبدیل سند ویژگی
PSDJAVA-197 پشتیبانی از ذخیره سازی تصویر حالت رنگ خاکستری PSD با 16 بیت بر کانال ویژگی
PSDJAVA-198 پشتیبانی از منبع Nvrt (منبع لایه تنظیم متقارن) ویژگی
PSDJAVA-200 پشتیبانی از ماسک های لایه برای گروه های لایه ویژگی
PSDJAVA-195 رفع مشکل ذخیره سازی تصویر PSD با حالت رنگ خاکستری 16 بیت بر کانال به فرمت 16 بیت بر کانال RGB PSD ایراد
PSDJAVA-196 رفع مشکل ذخیره سازی تصویر PSD با حالت رنگ خاکستری 16 بیت بر کانال به فرمت خاکستری 8 بیت بر کانال ایراد
PSDJAVA-199 تنظیم متن از طریق ITextPortion برای زبان‌های راست به چپ کار نمی‌کند. فایل خروجی دچار آسیب می‌شود. ایراد
PSDJAVA-201 خطا هنگام تلاش برای باز کردن فایل خاص Psd با رنگ Lab و 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 از %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();

    // تغییر حالت رنگی خروجی به RGB

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

        // بارگذاری یک PSD 16 بیتی خاکستری از پیش تعیین شده

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

        try

        {

            RasterCachedImage raster = layerNumber >= 0 ? image.getLayers()[layerNumber] : 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(colorMode);

            psdOptions.setChannelBitsCount(channelBitsCount);

            psdOptions.setChannelsCount(channelsCount);

            psdOptions.setCompressionMethod(compression);

            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. پشتیبانی از منبع Nvrt (منبع لایه تنظیم متقارن)

 // یک مثال از یافتن NvrtResource در یک لایه تنظیم معکوس.

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

 // یک مثال از تبدیل یک PSD خاکستری 16 بیتی به یکی RGB 16 بیتی و سپس به 

// خاکستری 16 بیتی اما تصویر Raster.

String sourceFilePath = "grayscale5x5.psd";

String exportFilePath = "rgb16bit5x5_output.psd";

String pngExportPath = "rgb16bit5x5_output.png";

// بارگذاری یک PSD 16 بیتی خاکستری از پیش تعریف شده

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 بیتی به یکی خاکستری 8 بیتی و سپس به

// یک تصویر خاکستری 8 بیتی Raster.

String sourceFilePath = "grayscale16bit.psd";

String exportFilePath = "grayscale16bit_output.psd";

String pngExportPath = "grayscale16bit_output.png";

// بارگذاری یک PSD 16 بیتی خاکستری از پیش تعریف شده

PsdImage image = (P