use of org.structr.web.entity.Image in project structr by structr.
the class ImageConverterCommand method processMessage.
@Override
public void processMessage(final WebSocketMessage webSocketData) {
final String originalImageId = webSocketData.getId();
final Map<String, Object> properties = webSocketData.getNodeData();
final Image originalImage = (Image) getNode(originalImageId);
final String format = (String) properties.get("format");
final int width = (int) (long) properties.get("width");
final int height = (int) (long) properties.get("height");
final int offsetX = (int) (long) properties.get("offsetX");
final int offsetY = (int) (long) properties.get("offsetY");
if (originalImage != null) {
final Thumbnail thumbnailData = ImageHelper.createCroppedImage(originalImage, width, height, offsetX, offsetY, format);
if (thumbnailData != null) {
final Integer tnWidth = thumbnailData.getWidth();
final Integer tnHeight = thumbnailData.getHeight();
byte[] data;
try {
data = thumbnailData.getBytes();
final String thumbnailName = ImageHelper.getVariantName(originalImage.getName(), tnWidth, tnHeight, "_cropped_");
// create image variant
final Image imageVariant = ImageHelper.createImageNode(originalImage.getSecurityContext(), data, "image/" + Thumbnail.Format.png, Image.class, thumbnailName, false);
// store in same parent folder
imageVariant.setParent(originalImage.getParent());
} catch (IOException | FrameworkException ex) {
getWebSocket().send(MessageBuilder.status().code(400).message("Could not create converted image for " + originalImageId).build(), true);
}
} else {
getWebSocket().send(MessageBuilder.status().code(400).message("Could not create converted image for " + originalImageId).build(), true);
}
} else {
getWebSocket().send(MessageBuilder.status().code(400).message("No id of the original image given").build(), true);
}
}
Aggregations