Aspose.PSD voor Python via .NET 24.4 - Release-opmerkingen

Sleutel Samenvatting Categorie
PSDPYTHON-50 [AI-indeling] Toevoegen van XObjectForm-bronverwerking Functie
PSDPYTHON-51 Toevoegen van Constructor voor de ShapeLayer Functie
PSDPYTHON-52 Oplossing conversiefout Psd-bestand van RGB naar CMYK Fout
PSDPYTHON-53 Bepaald PSD-bestand kan niet worden geëxporteerd met Aspose.PSD Fout

Wijzigingen in openbare API

Toegevoegde API’s:

  • M:Aspose.PSD.FileFormats.Psd.PsdImage.AddShapeLayer

Verwijderde API’s:

  • Geen

Gebruik voorbeelden:

PSDPYTHON-50. [AI-indeling] Toevoegen van XObjectForm-bronverwerking

        sourceFileName = "voorbeeld.ai"
        outputFilePath = "voorbeeld_output.png"

        with AiImage.load(sourceFileName) as image:
            image.save(outputFilePath, PngOptions())

PSDPYTHON-51. Toevoegen van Constructor voor de ShapeLayer

     def controleer ShapeLayerConstructor():
        outputFile = "AddShapeLayer_output.psd"

        with PsdImage(600, 400) as newPsd:
            shapeLayer = newPsd.add_shape_layer()

            newShape = genereer_nieuwe_vorm(newPsd.size)
            newShapes = [newShape]
            shapeLayer.path.set_items(newShapes)

            shapeLayer.update()

            newPsd.save(outputFile)

        with PsdImage.load(outputFile) as img:
            image = cast(PsdImage, img)
            assert len(image.layers) == 2

            shapeLayer = cast(ShapeLayer, image.layers[1])
            internalFill = shapeLayer.fill
            strokeSettings = shapeLayer.stroke
            strokeFill = shapeLayer.stroke.fill

            assert len(shapeLayer.path.get_items()) == 1
            assert len(shapeLayer.path.get_items()[0].get_items()) == 3

            assert internalFill.color.to_argb() == -16127182

            assert strokeSettings.size == 7.41
            assert not strokeSettings.enabled
            assert strokeSettings.line_alignment == StrokePosition.CENTER
            assert strokeSettings.line_cap == LineCapType.BUTT_CAP
            assert strokeSettings.line_join == LineJoinType.MITER_JOIN
            assert strokeFill.color.to_argb() == -16777216
			
    def genereer_nieuwe_vorm(afbeeldingsgrootte):
        nieuweVorm = PathShape()

        punt1 = PointF(20, 100)
        punt2 = PointF(200, 100)
        punt3 = PointF(300, 10)

        knoop1 = BezierKnotRecord()
        knoop1.is_linked = True
        knoop1.points = [
                    Release_24_04_Tests.PointFToResourcePoint(punt1, afbeeldingsgrootte),
                    Release_24_04_Tests.PointFToResourcePoint(punt1, afbeeldingsgrootte),
                    Release_24_04_Tests.PointFToResourcePoint(punt1, afbeeldingsgrootte)
                ]

        knoop2 = BezierKnotRecord()
        knoop2.is_linked = True
        knoop2.points = [
                    Release_24_04_Tests.PointFToResourcePoint(punt2, afbeeldingsgrootte),
                    Release_24_04_Tests.PointFToResourcePoint(punt2, afbeeldingsgrootte),
                    Release_24_04_Tests.PointFToResourcePoint(punt2, afbeeldingsgrootte)
                ]

        knoop3 = BezierKnotRecord()
        knoop3.is_linked = True
        knoop3.points = [
                    Release_24_04_Tests.PointFToResourcePoint(punt3, afbeeldingsgrootte),
                    Release_24_04_Tests.PointFToResourcePoint(punt3, afbeeldingsgrootte),
                    Release_24_04_Tests.PointFToResourcePoint(punt3, afbeeldingsgrootte)
                ]

        bezierknopen = [
            knoop1,
            knoop2,
            knoop3
        ]

        nieuweVorm.set_items(bezierknopen)

        return nieuweVorm
		
    def PointFToResourcePoint(punt, afbeeldingsgrootte):
        ImgToPsdVerhouding = 256 * 65535
        return Punt(
            int(round(punt.y * (ImgToPsdVerhouding / afbeeldingsgrootte.height))),
            int(round(punt.x * (ImgToPsdVerhouding / afbeeldingsgrootte.width)))
        )

    def assert_zijn_gelijk(verwacht, werkelijk, bericht=None):
        if verwacht != werkelijk:
            raise Uitzondering(bericht or "Objecten zijn niet gelijk.")
			

PSDPYTHON-52. Oplossing conversiefout Psd-bestand van RGB naar CMYK

     def controleerConversieVanRgbNaarCmyk():
        bronBestand = "kikker_nosymb.psd"
        uitvoerBestand = "kikker_nosymb_uitvoer.psd"

        with PsdImage.load(bronBestand) as afbeelding:
            psdAfbeelding = cast(PsdImage, afbeelding)
            psdAfbeelding.has_transparency_data = False

            psdOpties = PsdOptions(psdAfbeelding)
            psdOpties.color_mode = ColorModes.CMYK
            psdOpties.compression_method = CompressionMethod.RLE
            psdOpties.channels_count = 4

            psdAfbeelding.save(uitvoerBestand, psdOpties)

        with PsdImage.load(uitvoerBestand) as afbeelding:
            psdAfbeelding = cast(PsdImage, afbeelding)
            assert not psdAfbeelding.has_transparency_data
            assert psdAfbeelding.layers[0].channels_count == 4

        def assert_zijn_gelijk(verwacht, werkelijk, bericht=None):
            if verwacht != werkelijk:
                raise Uitzondering(bericht or "Objecten zijn niet gelijk.")			

    def assert_zijn_gelijk(verwacht, werkelijk, bericht=None):
        if verwacht != werkelijk:
            raise Uitzondering(bericht or "Objecten zijn niet gelijk.")
				

PSDPYTHON-53. Specifiek PSD-bestand kan niet worden geëxporteerd met Aspose.PSD

        bronBestand = "1966bron.psd"
        uitvoerPng = "uitvoer.png"

        laadopties = PsdLoadOptions()
        laadopties.load_effects_resource = True

        with PsdImage.load(bronBestand, laadopties) as psdAfbeelding:
            psdAfbeelding.save(uitvoerPng, PngOptions())