If so you can download any of the below versions for testing. The product will function as normal except for an evaluation limitation. At the time of purchase we provide a license file via email that will allow the product to work in its full capacity. If you would also like an evaluation license to test without any restrictions for 30 days, please follow the directions provided here.
If you experience errors, when you try to download a file, make sure your network policies (enforced by your company or ISP) allow downloading ZIP and/or MSI files.
Key | Summary | Category |
---|
PSDPYTHON-221 | [AI Format] Add processing of Text in PDF-Based AI Format | Feature |
PSDPYTHON-222 | Image.Open method with with psd file in arguments cause a spike in RAM and eventually crash | Feature |
PSDPYTHON-232 | [Ai format] Rework loading and storing data of AiImage. | Enhancement |
PSDPYTHON-223 | [Regression] Fix the export of Ai file to a gif file | Bug |
PSDPYTHON-224 | Incorrect Multiple Stroke Rendering | Bug |
PSDPYTHON-225 | Layer was exported with effects bounds even when AreEffectsEnabled is False | Bug |
PSDPYTHON-226 | Fix rendering of pattern with transparent pixels | Bug |
Public API Changes
Added APIs:
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.NameStructure
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.NameStructure.#ctor(Aspose.PSD.FileFormats.Psd.Layers.LayerResources.ClassID)
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.NameStructure.Key
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.NameStructure.Value
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.NameStructure.Length
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.NameStructure.StructureKey
Removed APIs:
Usage examples:
PSDPYTHON-221. [AI Format] Add processing of Text in PDF-Based AI Format
sourceFile = "text_test.ai"
outputFile = "text_test.png"
with AiImage.load(sourceFile) as image:
image.save(outputFile, PngOptions())
PSDPYTHON-222. Image.Open method with with psd file in arguments cause a spike in RAM and eventually crash
inputFile = "Mixer_ipad_Hand_W_crash.psd"
outputFile = "output.psd"
loadOpt = PsdLoadOptions()
loadOpt.data_recovery_mode = DataRecoveryMode.MAXIMAL_RECOVER
with PsdImage.load(inputFile, loadOpt) as img:
psdImage = cast(PsdImage, img)
layer = cast(SmartObjectLayer, psdImage.layers[3])
resource = cast(SoLdResource, layer.resources[9])
struct1 = cast(DescriptorStructure, resource.items[15])
struct2 = cast(ListStructure, struct1.structures[5])
struct3 = cast(DescriptorStructure, struct2.types[0])
struct4 = cast(DescriptorStructure, struct3.structures[6])
struct5 = cast(ReferenceStructure, struct4.structures[8])
nameStructure = cast(NameStructure, struct5.items[0])
assert nameStructure is not None
assert nameStructure.length == 37
assert nameStructure.value == "None\x00"
psdImage.save(outputFile)
PSDPYTHON-223. [Regression] Fix the export of Ai file to a gif file
sourceFile = "rect2_color.ai"
outPng_WithAlpha_Back_White = "output_WithAlpha_Back_White.png"
outPng_WithAlpha_Back_Transparent = "output_WithAlpha_Back_Transparent.png"
outPng_NoAlpha_Back_Transparent = "output_NoAlpha_Back_Transparent.png"
outGif_Back_Transparent = "output_Back_Transparent.gif"
outGif_Back_White = "output_Back_White.gif"
with AiImage.load(sourceFile) as image:
# AiImage.BackgroundColor = White, Png file with Alpha
# We should get White background
pngOpt = PngOptions()
pngOpt.color_type = PngColorType.TRUECOLOR_WITH_ALPHA
image.save(outPng_WithAlpha_Back_White, pngOpt)
# AiImage.BackgroundColor = Transparent, Png file with Alpha
# We should get Transparent background
image.background_color = Color.transparent
image.save(outPng_WithAlpha_Back_Transparent, pngOpt)
# AiImage.BackgroundColor = Transparent, Png file without Alpha
# We should get black background
image.save(outPng_NoAlpha_Back_Transparent, PngOptions())
# AiImage.BackgroundColor = Transparent, Gif file
# We should get black background
gifOpt = GifOptions()
gifOpt.do_palette_correction = False
image.save(outGif_Back_Transparent, gifOpt)
# AiImage.BackgroundColor = White, Gif file
# We should get White background
image.background_color = Color.white
image.save(outGif_Back_White, gifOpt)
PSDPYTHON-224. Incorrect Multiple Stroke Rendering
sourceFile = "2503.psd"
outputFile = "out_2503.png"
psdOpt = PsdLoadOptions()
psdOpt.load_effects_resource = True
pngOpt = PngOptions()
pngOpt.color_type = PngColorType.TRUECOLOR_WITH_ALPHA
with PsdImage.load(sourceFile, psdOpt) as image:
image.save(outputFile, pngOpt)
PSDPYTHON-225. Layer was exported with effects bounds even when AreEffectsEnabled is False
srcFile = "2512.psd"
outputFile = "out_2512.png"
psdOpt = PsdLoadOptions()
psdOpt.load_effects_resource = True
with PsdImage.load(srcFile, psdOpt) as img:
psdImage = cast(PsdImage, img)
layer1 = psdImage.layers[1]
layer1.blending_options.are_effects_enabled = False
pngOpt = PngOptions()
pngOpt.color_type = PngColorType.TRUECOLOR_WITH_ALPHA
# The result should contain only layer pixels, without reserved for effects bounds.
layer1.save(outputFile, pngOpt)
PSDPYTHON-226. Fix rendering of pattern with transparent pixels
sourceFile = "2514.psd"
outputFile = "out_2514.png"
psdOpt = PsdLoadOptions()
psdOpt.load_effects_resource = True
pngOpt = PngOptions()
pngOpt.color_type = PngColorType.TRUECOLOR_WITH_ALPHA
with PsdImage.load(sourceFile, psdOpt) as img:
psdImage = cast(PsdImage, img)
psdImage.save(outputFile, pngOpt)