Aspose.PSD cho Java 23.8 - Ghi chú phát hành

Khóa Tóm tắt Danh mục
PSDJAVA-518 Thêm loại mới của méo dạng cờ (Flag) Tính năng
PSDJAVA-519 Thêm các loại mới của méo: hình cung lên, hình cung xuống, hình cầu Tính năng
PSDJAVA-520 Thực hiện phương thức mới PsdImage.AddPosterizeAdjustmentLayer để thêm lớp Posterize mới Tính năng
PSDJAVA-521 Thông tin PSD bị mất khi chỉ mở và lưu lại Lỗi
PSDJAVA-522 Tải hình thất bại Lỗi
PSDJAVA-523 Tải hình thất bại: Không thể ép kiểu đối tượng từ kiểu UnknownStructure sang kiểu DescriptorStructure Lỗi
PSDJAVA-524 Tệp được thay đổi trong thư viện bên thứ ba làm hỏng tệp PSD nhưng có thể mở được trong Photoshop Lỗi

Thay đổi API Công khai

API Đã Thêm:

  • M:com.aspose.psd.fileformats.psd.PsdImage.addPosterizeAdjustmentLayer

API Đã Xóa:

  • Không có

Ví dụ sử dụng:

PSDJAVA-518. Thêm loại mới của méo dạng cờ (Flag)

    String sourceFile = "src/main/resources/flag_warp.psd";
    String outputFile = "src/main/resources/flag_export.png";

    PsdLoadOptions psdLoadOptions = new PsdLoadOptions();
    psdLoadOptions.setAllowWarpRepaint(true);
    psdLoadOptions.setLoadEffectsResource(true);
    try (PsdImage psdImage = (PsdImage) Image.load(sourceFile, psdLoadOptions)) {
        PngOptions pngOptions = new PngOptions();
        pngOptions.setColorType(PngColorType.TruecolorWithAlpha);

        psdImage.save(outputFile, pngOptions);
    }

PSDJAVA-519. Thêm các loại mới của méo: hình cung lên, hình cung xuống, hình cầu

    String sourceFileArcUpper = "src/main/resources/arc_upper_warp.psd";
    String sourceFileArcLower = "src/main/resources/arc_lower_warp.psd";
    String sourceFileBulge = "src/main/resources/bulge_warp.psd";

    String outputFileArcUpper = "src/main/resources/ArcUpper_export.png";
    String outputFileArcLower = "src/main/resources/ArcLower_export.png";
    String outputFileBulge = "src/main/resources/Bulge_export.png";

    PsdLoadOptions psdLoadOptions = new PsdLoadOptions();
    psdLoadOptions.setAllowWarpRepaint(true);
    psdLoadOptions.setLoadEffectsResource(true);

    PngOptions pngOptions = new PngOptions();
    pngOptions.setColorType(PngColorType.TruecolorWithAlpha);

    try (PsdImage psdImage = (PsdImage) Image.load(sourceFileArcUpper, psdLoadOptions)) {
        psdImage.save(outputFileArcUpper, pngOptions);
    }

    try (PsdImage psdImage = (PsdImage) Image.load(sourceFileArcLower, psdLoadOptions)) {
        psdImage.save(outputFileArcLower, pngOptions);
    }

    try (PsdImage psdImage = (PsdImage) Image.load(sourceFileBulge, psdLoadOptions)) {
        psdImage.save(outputFileBulge, pngOptions);
    }

PSDJAVA-520. Thực hiện phương thức mới PsdImage.AddPosterizeAdjustmentLayer để thêm lớp Posterize mới

public static void main(String[] args) {
    String srcFile = "src/main/resources/zendeya.psd";
    String outFile = "src/main/resources/zendeya.psd.out.psd";

    try (PsdImage psdImage = (PsdImage) Image.load(srcFile)) {
        psdImage.addPosterizeAdjustmentLayer();
        psdImage.save(outFile);
    }

    PsdLoadOptions psdLoadOptions = new PsdLoadOptions();
    psdLoadOptions.setLoadEffectsResource(true);

    // Kiểm tra các thay đổi đã lưu
    try (PsdImage image = (PsdImage) Image.load(outFile, psdLoadOptions)) {
        assertAreEqual(2, image.getLayers().length);

        PosterizeLayer posterizeLayer = (PosterizeLayer) image.getLayers()[1];

        assertAreEqual(true, posterizeLayer instanceof PosterizeLayer);
    }
}

static void assertAreEqual(Object expected, Object actual) {
    assertAreEqual(expected, actual, "Các đối tượng không bằng nhau.");
}

static void assertAreEqual(Object expected, Object actual, String message) {
    if (!expected.equals(actual)) {
        throw new IllegalArgumentException(message);
    }
}

PSDJAVA-521. Thông tin PSD bị mất khi chỉ mở và lưu lại

    String src = "src/main/resources/Original file.psd";
    String outputPsd = "src/main/resources/out_Original file.psd";
    String outputPng = "src/main/resources/out_Original file.png";

    try (PsdImage psdImage = (PsdImage) Image.load(src)) {
        PngOptions pngOptions = new PngOptions();
        pngOptions.setColorType(PngColorType.TruecolorWithAlpha);

        psdImage.save(outputPsd);
        psdImage.save(outputPng, pngOptions);
    }

PSDJAVA-522. Tải hình thất bại

    String srcFile1 = "src/main/resources/test_text.psd";
    String srcFile2 = "src/main/resources/test_smart_object.psd";

    try (PsdImage psdImage = (PsdImage) Image.load(srcFile1)) {
    }

    try (PsdImage psdImage = (PsdImage) Image.load(srcFile2)) {
    }

PSDJAVA-523. Tải hình thất bại: Không thể ép kiểu đối tương từ kiểu UnknownStructure sang kiểu DescriptorStructure

   try (PsdImage newPsd = new PsdImage(10, 10)) {
        newPsd.addLayer(FillLayer.createInstance(FillType.Gradient));

        final MemoryStream memStream = new MemoryStream(DescriptorStructure.StructureKey + 1000);
        try {
            newPsd.save(memStream.toOutputStream());

            memStream.seek(DescriptorStructure.StructureKey, SeekOrigin.Current);
            memStream.write(new byte[1], 0, 0);
            memStream.setPosition(0);

            try (PsdImage psdImage = (PsdImage) Image.load(memStream.toInputStream())) {
                // Nên tải đúng
            }
        } finally {
            memStream.close();
        }
    }

PSDJAVA-524. Tệp được thay đổi trong thư viện bên thứ ba làm hỏng tệp PSD nhưng có thể mở được trong Photoshop

    String sourceFile = "src/main/resources/output.psd";
    String outputFile = "src/main/resources/export.png";

    PsdLoadOptions psdLoadOptions = new PsdLoadOptions();
    psdLoadOptions.setLoadEffectsResource(true);

    try (PsdImage img = (PsdImage) Image.load(sourceFile, psdLoadOptions)) {
        PngOptions pngOptions = new PngOptions();
        pngOptions.setCompressionLevel(9);
        pngOptions.setColorType(PngColorType.TruecolorWithAlpha);

        img.save(outputFile, pngOptions);
    }