Aspose.PSD for Java 25.2 - Release Notes
Contents
[
Hide
]
This page contains release notes
forAspose.PSD for Java 25.2
Key | Summary | Category |
---|---|---|
PSDJAVA-702 | Saving of PSB Files with size more than 2Gb | Feature |
PSDJAVA-703 | Implement handling of Noise gardient in Layer Effects | Feature |
PSDJAVA-704 | Improve performance of mask processing | Enhancement |
PSDJAVA-709 | Exception “Index outside the bounds of the array” when saving psb with size more than 1GB | Bug |
Public API Changes
Added APIs:
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getColor
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setColor(com.aspose.psd.Color)
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.getGradientName
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.setGradientName(java.lang.String)
- M:com.aspose.psd.fileformats.psd.layers.layereffects.GradientOverlayEffect.setSettings(com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings)
- M:com.aspose.psd.fileformats.psd.layers.adjustmentlayers.GradientMapLayer.update
Removed APIs:
- M:com.aspose.psd.fileformats.psd.layers.layereffects.GradientOverlayEffect.setSettings(com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings)
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.#ctor(com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource)
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getColor
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setColor(com.aspose.psd.Color)
Usage examples:
PSDJAVA-702. Saving of PSB Files with size more than 2Gb
String outputFilePng = "src/main/resources/bigpsd.psd";
try (PsdImage psdImage = new PsdImage(25000, 15000);
Layer layer = new Layer()) {
layer.setLeft(0);
layer.setTop(0);
layer.setRight(psdImage.getWidth());
layer.setBottom(psdImage.getHeight());
// Preparing test layer
int[] pixels = new int[layer.getWidth() * layer.getHeight()];
int[] row = new int[layer.getWidth()];
for (int x = 0; x < layer.getWidth(); x++) {
row[x] = 255 << 24 | (x % 256 * (x % 4)) << 16 | (x % 256 * (x % 5)) << 8 | (x % 256 * (x % 3)) << 24;
}
for (int y = 0; y < layer.getHeight(); y++) {
System.arraycopy(row, 0, pixels, y * layer.getWidth(), layer.getWidth());
}
layer.saveArgb32Pixels(layer.getBounds(), pixels);
// Adding layer to file
psdImage.setLayers(new Layer[]{layer, layer});
psdImage.save(outputFilePng, new PsdOptions());
}
PSDJAVA-703. Implement handling of Noise gradient in Layer Effects
public static void main(String[] args) {
String inputFile = "src/main/resources/Stroke.psd";
String outputFile = "src/main/resources/output_Stroke.psd";
var loadOptions = new PsdLoadOptions();
loadOptions.setLoadEffectsResource(true);
try (PsdImage image = (PsdImage) Image.load(inputFile, loadOptions)) {
var layerEffect = (StrokeEffect) image.getLayers()[1].getBlendingOptions().getEffects()[0];
var settings = (NoiseGradientFillSettings) layerEffect.getFillSettings();
assertIsNotNull(settings);
// Edit
GradientFillSettings newFillSettings = new GradientFillSettings();
newFillSettings.setAngle(35);
layerEffect.setFillSettings(newFillSettings);
image.save(outputFile);
}
// Check changed data.
try (PsdImage image = (PsdImage) Image.load(outputFile, loadOptions)) {
var layerEffect = (StrokeEffect) image.getLayers()[1].getBlendingOptions().getEffects()[0];
var updatedFillSettings = (GradientFillSettings) layerEffect.getFillSettings();
assertIsNotNull(updatedFillSettings);
assertAreEqual(35.0, updatedFillSettings.getAngle());
}
}
static void assertAreEqual(Object expected, Object actual) {
assertAreEqual(expected, actual, "Objects are not equal.");
}
static void assertAreEqual(Object expected, Object actual, String message) {
if (!expected.equals(actual)) {
throw new IllegalArgumentException(message);
}
}
static void assertIsNotNull(Object testObject) {
if (testObject == null) {
throw new RuntimeException("Test object are null.");
}
}