// source can be a File or InputStream
PSDDocument document = new PSDDocument(source);
BufferedImage image = document.getCompositeImage();
PSDDocument document = new PSDDocument(source);
ArrayList<LayerRecord> layers = document.getLayers();
// Total number of layers
int nol = layers.size();
// Get first layer
LayerRecord layerRecord = layers.get(0);
// Get the image
BufferedImage image = layerRecord.getImage(document);
// Change the blending mode
layerRecord.setBlendingMode(BlendingMode.LIGHTEN);
// Set opacity
layerRecord.setOpacity(1.0);
// Set a mask
BufferedImage mask = ...;
layerRecord.setMask(mask);
// To check if a layer has a mask
if(layerRecord.hasMask()) {
...
}
// To change a layer's visibility
layerRecord.setLayerVisible(#boolean)
// To invert the effect of mask
layerRecord.setInvertMask(#boolean)
// To disable a mask
layerRecord.setMaskDisabled(#boolean)
// To change mask location behaviour
layerRecord.setMaskPositionRelativeToLayer(#boolean)
// To change the bounds of mask
layerRecord.getLayerMaskData().setMaskEncloser(#Rectangle)
BufferedImage image = ...;
PSDDocument document = new PSDDocument(image);
// destination can be a File or OutputStream
document.writeTo(destination);
// composite, layer1, layer2, layer3 are BufferedImage
// height and width of composite and layer1 should be same
PSDDocument document = new PSDDocument(height, width);
document.setCompositeImage(composite);
List<LayerRecord> layers = document.getLayers();
// First two arguments are the offset from top left in pixels
LayerRecord record1 = new LayerRecord(0, 0, "BackGround", layer1);
LayerRecord record2 = new LayerRecord(50, 0, "Layer One", layer2);
LayerRecord record3 = new LayerRecord(100, 0, "Layer Two", layer3);
// May change parameters as required
record2.setBlendingMode(BlendingMode.DARKER_COLOR);
record3.setBlendingMode(BlendingMode.LIGHTER_COLOR);
record3.setOpacity(0.5f);
// Add the records to layer info
layers.add(record1);
layers.add(record2);
layers.add(record3);
document.writeTo(destination);